Я оставляю это здесь для исторических целей, пожалуйста, ознакомьтесь с моими изменениями ниже для гораздо лучшего решения после того, как
я какое-то время развивал реакцию. В итоге я создал компонент NgIf (это нативный ответ, но, вероятно, работает для реагирования)
Код:
import React, {Component} from "react";
class NgIf extends Component {
render() {
if (this.props.show) {
return (
this.props.children
);
} else {
return null
}
}
}
export default NgIf;
Применение:
...
import NgIf from "./path/to/component"
...
class MyClass {
render(){
<NgIf show={this.props.show}><Text>This Gets Displayed</Text></NgIf>
}
}
Я новичок в этом, поэтому, вероятно, можно улучшить, но помогает мне при переходе с Angular
РЕДАКТИРОВАТЬ
См. Правки ниже для лучшего объяснения, когда у меня будет больше опыта
Благодаря комментарию Джея ниже отличная идея также:
render() {
<View>{this.props.value ? <Text>Yes</Text> : <Text>No</Text>}</View>
}
ИЛИ ЖЕ
render() {
<View>{this.props.value && <Text>Yes</Text>}</View>
}
Подобно некоторым другим ответам, но работает встроенно, вместо использования всего блока / функции рендеринга не требует специального компонента, и вы можете использовать оператор else с тернарным оператором. Элементы Plus, содержащиеся в операторе if, не вызывают ошибки, если их родительский объект не существует. Т.е. если if props.value
не существует, то props.value.value2
не выдаст ошибку.
См. Этот ответ https://stackoverflow.com/a/26152067
РЕДАКТИРОВАТЬ 2:
Согласно приведенной выше ссылке ( https://stackoverflow.com/a/26152067 ) и после гораздо большего опыта разработки приложений для реагирования, описанный выше способ не лучший способ делать что-то.
Условные операторы в react на самом деле очень легко понять. Есть два способа сделать что-то:
{someItem && displayThis}
{someItem ? displayThisIfTrue : displayThisIfFalse}
Вы можете сделать одно предостережение, если someItem не является логическим выражением. Если указано, что 0, response будет печатать 0, или response native выдаст вам ошибку о необходимости обернуть «0» в текстовый элемент. Обычно это не проблема для тестов на ложность, но представляет проблему для достоверных тестов. Например:
{!someItem && displayThis}
{someItem && displayThis}
Моя часто используемая уловка? двойные негативы.
{!!someItem && displayThis}
Обратите внимание, что это не относится к тернарным операторам (myVar? True: false), поскольку он неявно преобразует результат в логическое выражение.