Dejo esto aquí para fines históricos, consulte mis ediciones a continuación para obtener una solución mucho mejor después de haber desarrollado en react durante un tiempo
, terminé creando un componente NgIf (esto es nativo de reacción pero probablemente funcione para reaccionar)
Código:
import React, {Component} from "react";
class NgIf extends Component {
render() {
if (this.props.show) {
return (
this.props.children
);
} else {
return null
}
}
}
export default NgIf;
Uso:
...
import NgIf from "./path/to/component"
...
class MyClass {
render(){
<NgIf show={this.props.show}><Text>This Gets Displayed</Text></NgIf>
}
}
Soy nuevo en esto, por lo que probablemente se pueda mejorar, pero me ayuda en mi transición de Angular
EDITAR
Consulte las ediciones a continuación para obtener una mejor explicación una vez que tenga más experiencia
Gracias al comentario de Jay a continuación, una gran idea también es:
render() {
<View>{this.props.value ? <Text>Yes</Text> : <Text>No</Text>}</View>
}
O
render() {
<View>{this.props.value && <Text>Yes</Text>}</View>
}
Similar a algunas de las otras respuestas, pero funciona en línea, en lugar de usar todo el bloque / función de renderizado, no requiere un componente especial y puede usar una declaración else con el operador ternario. Además, los elementos contenidos en la instrucción if no arrojan un error si su objeto principal no existe. Es decir, si props.value
no existe, props.value.value2
no arrojará un error.
Vea esta respuesta https://stackoverflow.com/a/26152067
EDITAR 2:
Según el enlace anterior ( https://stackoverflow.com/a/26152067 ) y después de mucha más experiencia desarrollando aplicaciones de reacción, la forma anterior no es la mejor manera de hacer las cosas.
Los operadores condicionales en reacción son en realidad muy fáciles de entender. Hay dos formas de hacer las cosas:
{someItem && displayThis}
{someItem ? displayThisIfTrue : displayThisIfFalse}
Una advertencia que podría tener es si "someItem" no es una expresión booleana. Si dice 0, react imprimirá un 0 o react native le dará un error acerca de la necesidad de ajustar "0" en un elemento de texto. Por lo general, esto no es un problema para las pruebas falsas, pero presentará un problema para las pruebas veraces. Por ejemplo:
{!someItem && displayThis}
{someItem && displayThis}
¿Mi truco de uso frecuente? dobles negativos.
{!!someItem && displayThis}
Tenga en cuenta que esto no se aplica a los operadores ternarios (myVar? True: false), ya que convierte implícitamente el resultado en una expresión booleana.