Я залишаю це тут для історичних цілей, будь ласка, перегляньте мої редагування нижче для набагато кращого рішення, після того, як
я деякий час розробив реакцію, і в кінцевому підсумку створив компонент 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 з тернарним оператором. Плюс елементи, що містяться в операторі if, не видають помилки, якщо їх батьківський об'єкт не існує. Тобто якщо якщо props.value
не існує, то props.value.value2
не видасть помилки.
Дивіться цю відповідь https://stackoverflow.com/a/26152067
РЕДАКТУВАТИ 2:
Відповідно до вищевказаного посилання ( https://stackoverflow.com/a/26152067 ) і після набагато більше досвіду у розробці програм для реагування, вищезазначений спосіб - не найкращий спосіб зробити щось.
Умовні оператори в реакції насправді дуже легко розібратися. Є два способи зробити щось:
{someItem && displayThis}
{someItem ? displayThisIfTrue : displayThisIfFalse}
Одне застереження, яке ви могли б вразити, це те, що "someItem" не є логічним виразом. Якщо це "0", реакція надрукує 0 або "рідний" відповідь видасть вам помилку про необхідність обернути "0" у текстовий елемент. Зазвичай це не є проблемою для тестів на хибність, але це представляє проблему для істинних тестів. Наприклад:
{!someItem && displayThis}
{someItem && displayThis}
Мій часто використовуваний трюк? подвійні негативи.
{!!someItem && displayThis}
Зверніть увагу, що це не застосовується до тернарних операторів (myVar? True: false), оскільки він неявно перетворює результат у логічний вираз.