Estoy creando una aplicación de Android usando react native y he usado el componente TouchableOpacity para crear botones.
Utilizo un componente de entrada de texto para aceptar texto del usuario y el botón solo debe habilitarse una vez que la entrada de texto coincida con una cadena determinada.
Puedo pensar en una forma de hacer esto al representar inicialmente el botón sin el contenedor TouchableOpactiy y volver a representar con el contenedor una vez que la cadena de entrada coincide.
Pero supongo que hay una manera mucho mejor de hacer esto. ¿Alguien puede ayudar?
react-native
Jeff P Chacko
fuente
fuente
disabled
Estado no cambia los estilos de reproducción hijo para el fin de hacer que el estado deshabilitado visible para los usuarios que tendría que aplicar un estilo alText
elemento como<Text style={{ opacity: 0.5 }}>I'm disabled</Text>
- sólo un FYISolo haz esto
fuente
<Text>{text}</FontText>
? FontText?Este parece ser el tipo de cosa que podría resolverse utilizando un Componente de orden superior. Sin embargo, podría estar equivocado porque me cuesta entenderlo al 100%, pero tal vez te sea útil (aquí hay un par de enlaces) ...
fuente
TouchableOpacity recibe
activeOpacity
. Puedes hacer algo como estoEntonces, si está habilitado, se verá normal, de lo contrario, se verá como tocable sin retroalimentación.
fuente
esta base nativa hay solución:
fuente
Para deshabilitar el texto, debe establecer la opacidad: 0 en estilo de texto como este:
fuente
Puede crear un CustButton con
TouchableWithoutFeedback
, y establecer el efecto y la lógica que deseeonPressIn
,onPressout
u otros accesorios.fuente
Pude solucionar esto poniendo un condicional en la propiedad de estilo.
fuente
Aquí está mi trabajo para esto, espero que ayude:
en
SignUpStyleSheet.inputStyle
contiene el estilo del botón cuando está deshabilitado o no, luegostyle={this.state.validity ? SignUpStyleSheet.inputStyle : [SignUpStyleSheet.inputAndButton, {opacity: 0.5}]}
agrego la propiedad de opacidad si el botón está deshabilitado.fuente
Puede habilitar y deshabilitar el botón o mediante la condición o directamente de forma predeterminada, se deshabilitará: verdadero
fuente
Creo que la forma más eficiente es envolver la TouchchableOpacity con una vista y agregar el puntero PropEvents con una condición de estilo.
CSS:
fuente