Soy realmente nuevo en React Native y me pregunto cómo puedo ocultar / mostrar un componente.
Aquí está mi caso de prueba:
<TextInput
onFocus={this.showCancel()}
onChangeText={(text) => this.doSearch({input: text})} />
<TouchableHighlight
onPress={this.hideCancel()}>
<View>
<Text style={styles.cancelButtonText}>Cancel</Text>
</View>
</TouchableHighlight>
tengo un TextInput
componente, lo que quiero es mostrar TouchableHighlight
cuándo la entrada obtiene el foco, luego ocultar TouchableHighlight
cuando el usuario presiona el botón cancelar.
No sé cómo "acceder" al TouchableHighlight
componente para ocultarlo / mostrarlo dentro de mis funciones showCancel/hideCancel
.
Además, ¿cómo puedo ocultar el botón desde el principio?
javascript
react-native
Crysfel
fuente
fuente
Respuestas:
Haría algo como esto:
fuente
return ''
areturn null
{someBoolVal && <Component />}
y solo se mostrará si el valor bool es verdadero.En su función de renderizado:
Entonces solo haz:
fuente
{ this.state.showTheThing && (<Text>foo</Text> && <Text>bar</Text>)}
solo se muestra "barra" en la interfaz de usuario. Esperaría que se mostraran "foo" y "bar". Lo que necesito hacer para resolver esto es llamar{ this.state.showTheThing && (<Text>foo</Text>} { this.state.showTheThing && (<Text>bar</Text>}
&&
no combina elementos{ this.state.showTheThing && (<View><Text>foo</Text><Text>bar</Text></View>)}
{this.state.hasPic && <Button title="Go to next step" onPress={this._nextStep} />}
<React.Fragment><Text>Foo</Text><Text>Bar></Text></React.Fragment>
En reaccionar o reaccionar de forma nativa, la forma en que el componente ocultar / mostrar o agregar / eliminar no funciona como en Android o iOS. La mayoría de nosotros cree que habría una estrategia similar como
Pero la forma en que reacciona el trabajo nativo es completamente diferente. La única forma de lograr este tipo de funcionalidad es incluir su componente en su DOM o eliminarlo de DOM.
Aquí, en este ejemplo, voy a establecer la visibilidad de la vista de texto en función del clic del botón.
La idea detrás de esta tarea es crear una variable de estado llamada estado que tenga el valor inicial establecido en falso cuando se produce el evento de clic del botón y luego el valor cambia. Ahora usaremos esta variable de estado durante la creación del componente.
Lo único que se debe notar en este fragmento es
renderIf
cuál es en realidad una función que devolverá el componente que se le pasó en función del valor booleano que se le pasó.fuente
en render () puede mostrar condicionalmente el JSX o devolver nulo como en:
fuente
Necesitaba cambiar entre dos imágenes. Con el cambio condicional entre ellos hubo un retraso de 5 segundos sin mostrar ninguna imagen.
Estoy usando el enfoque de la respuesta amos con voto negativo. Publicar como nueva respuesta porque es difícil poner código en el comentario con el formato adecuado.
Función de procesamiento:
Estilos:
fuente
La mayoría de las veces estoy haciendo algo como esto:
Si eres nuevo en la programación, esta línea debe ser extraña para ti:
Esta línea es equivalente a
Pero no puede escribir una condición if / else en el contenido JSX (por ejemplo, la parte return () de una función de representación), por lo que tendrá que usar esta notación.
Este pequeño truco puede ser muy útil en muchos casos y le sugiero que lo use en sus desarrollos porque puede verificar rápidamente una condición.
Saludos,
fuente
Ocultar y mostrar vista principal de
Activity Indicator
Ocultar y mostrar como sigue
Referencia completa
El botón On presiona establecer el estado de la siguiente manera
Cuando necesitas esconderte
fuente
El diseño de React Native tiene el
display
soporte de propiedad, similar a CSS. Valores posibles:none
yflex
(predeterminado). https://facebook.github.io/react-native/docs/layout-props#displayfuente
position: absolute
, ¡en realidad no lo oculta! ErrorSolo usa
fuente
declarar visible falso, por lo que, por defecto, modal / view se ocultan
ejemplo = () => {
}
**Llamada de función **
fuente
Tuve el mismo problema en el que me gustaría mostrar / ocultar vistas, pero realmente no quería que la interfaz de usuario saltara cuando se agregaran / eliminaran cosas o que necesariamente se ocupara de volver a renderizar.
Escribí un componente simple para tratarlo por mí. Animado por defecto, pero fácil de alternar. Lo puse en GitHub y NPM con un archivo Léame, pero todo el código está debajo.
npm install --save react-native-hideable-view
fuente
visible && (...)
.Una opción adicional es aplicar el posicionamiento absoluto a través del estilo , configurando el componente oculto en coordenadas fuera de la pantalla:
A diferencia de algunas de las sugerencias anteriores, esto ocultaría su componente de la vista, PERO también lo representará (lo mantendrá en el DOM), lo que lo hará realmente invisible .
fuente
Si necesita que el componente permanezca cargado pero oculto, puede establecer la opacidad en 0. (necesitaba esto para la cámara de exposición, por ejemplo)
fuente
Puede usar mi módulo react-native-display para mostrar / ocultar componentes.
fuente
El siguiente ejemplo es la codificación en mecanografiado con Hooks.
fuente
fuente
Muy fácil. Simplemente cambie a () => this.showCancel () como a continuación:
fuente
Solo estoy usando el siguiente método para ocultar o ver un botón. Espero que te ayude. solo actualizar el estado y agregar hide css es suficiente para mí
fuente
En realidad, en el desarrollo de iOS
react-native
cuando usodisplay: 'none'
o algo como a continuación:El iOS no carga nada más del componente de imagen como
onLoad
o etc., así que decidí usar algo como a continuación:fuente
La única forma de mostrar u ocultar un componente en react native es comprobando un valor de un parámetro del estado de la aplicación como
state
oprops
. Proporcioné un ejemplo completo de la siguiente manera:fuente
Si desea ocultarlo pero mantener el espacio ocupado por el componente como la
visibility: hidden
configuración de css en el estilo del componenteopacity: 0
debería ser el truco.Dependiendo del componente, pueden ser necesarios otros pasos para deshabilitar la funcionalidad, ya que es posible la interacción con un elemento invisible.
fuente
Puede usar las condiciones para mostrar y ocultar los componentes
fuente
eso es todo. disfruta tu codificación ...
fuente