react onchangetext example react-native

react-native - onchangetext - text input



¿Cuál es una alternativa de textarea en reaccion-native? (5)

¿Hay algún componente integrado en el área de texto para reaccionar nativo? He intentado implementar estos:

https://github.com/buildo/react-autosize-textarea

https://github.com/andreypopp/react-textarea-autosize

pero obteniendo un error "Se esperaba que una clase de componente tuviera un objeto objeto".


Construyo áreas de texto en reactivo nativo envolviendo un componente TextInput en una View la siguiente manera:

<View style={styles.textAreaContainer} > <TextInput style={styles.textArea} underlineColorAndroid="transparent" placeholder="Type something" placeholderTextColor="grey" numberOfLines={10} multiline={true} /> </View>

...

const styles = StyleSheet.create({ textAreaContainer: { borderColor: COLORS.grey20, borderWidth: 1, padding: 5 }, textArea: { height: 150, justifyContent: "flex-start" } })


Estoy usando este componente: https://www.npmjs.com/package/react-native-autogrow-textinput

Se expande automáticamente el crecimiento en el texto. Creé mi propio componente reutilizable con el autogrow-textinput como parte de él, que dentro del componente se ve así:

<AutoGrowingTextInput minHeight={40} maxHeight={maxHeight} // this is a flexible value that I set in my component, where I use this reusable component, same below, unless specified the other onChangeText={onChangeText} placeholder={placeholder} placeholderTextColor=''#C7C7CD'' style={inputStyle} value={value} />


Sí hay. Se llama TextInput, el componente TextInput normal admite varias líneas.

Simplemente asigne las siguientes propiedades a su componente TextInput

multiline = {true} numberOfLines = {4}

Al final debes tener esto:

<TextInput multiline={true} numberOfLines={4} onChangeText={(text) => this.setState({text})} value={this.state.text}/>


Si desea ver su componente TextInput como un área de texto, deberá agregar este

<TextInput multiline={true} numberOfLines={10} style={{ height:200, textAlignVertical: ''top'',}}/>


Si solo está utilizando componentes nativos de reacción, su opción es TextInput

Como explicó "funkysoul":

Simplemente asigne las siguientes propiedades a su componente TextInput

multiline = {true}
numberOfLines = {4}

Si desea ver este componente como el área de textarea clásica (más grande que una entrada de texto en línea), normalmente deberá agregar la propiedad de estilo de height . Vea el siguiente ejemplo:

<TextInput multiline={true} numberOfLines={10} style={{ height:200, backgroundColor:''red''}} />

Agregué el backgroundColor para una mejor comprensión del rol de la height . Por favor, no lo use en su proyecto;)