Как использовать операторы jsx-control в responsejs?

Я использую jsx-control-инструкции в приложении реакции, чтобы добавить базовые операторы управления. Я установил то же самое с помощью npm и обновил файл.babelrc, как показано ниже

{
  "presets": ["react"],
  "plugins": ["jsx-control-statements"]
}

и я ниже JSX-код

<IF condition={ selectedID !== null }>
 {this.renderData()}
</IF>

ниже находится функция для инициирования selectID, я хочу выполнить renderData(), только если значение не равно нулю

getInitialState() {
    return {
        selectedID: null
    }
},

На данный момент я получаю консольную ошибку, говорящую "Uncaught ReferenceError: IF не определен", и приложение не загружается. Может кто-нибудь сказать мне что-нибудь не так здесь. Нужна помощь.

2 ответа

Решение

Лучший способ использовать операторы jsx-control в actjs - НЕ использовать его вообще. Зачем? потому что в моей компании он был в нашем проекте, и он принес нам только нечитаемый, ошибочный и загроможденный код.

Подумайте на секунду, что вы поощряете перенос бизнес-логики в часть jsx компонента представления, которая должна использоваться только для вывода уже обработанных данных. Сначала это может выглядеть хорошо, но через некоторое время все больше и больше логики будет идти туда, и это станет проблемой.

Так что в вашем случае вы можете сделать что-то вроде этого:

{selectedID !== null && this.renderData()}

Немного поздно, но я только что натолкнулся на это во время поиска в Google - вы хотите использовать If вместо IF,

Я полагаю, не использовать его вообще работает:|.

Другие вопросы по тегам