TextInput是一個允許用戶輸入文本的基礎組件。它有一個名為onChangeText的屬性,此屬性接受一個函數,而此函數會在文本變化時被調用。另外還有一個名為onSubmitEditing的屬性,會在文本被提交后(用戶按下軟鍵盤上的提交鍵)調用。
假如我們要實現(xiàn)當用戶輸入時,實時將其以單詞為單位翻譯為另一種文字。我們假設這另一種文字來自某個吃貨星球,只有一個單詞:??。所以“Hello there Bob”將會被翻譯為“?? ?? ?? ”。
import React, { Component } from 'react';
import { Text,TextInput, View } from 'react-native';
export default class PizzaTranslator extends Component{
render{
return(
<View style={{padding:10}}>
<TextInput
style={{height:40}}
placeholder="type here to translate!"
onChangeText={(text)=>this.setState({text})}
value={this.state.text}
/>
<Text style={{padding:10,fontSize:42}}>
{this.state.split('').map((word)=>word&&'??').join('')}
</Text>
</View>
);
}
}
運行結果


在上面的例子里,我們把text保存到state中,因為它會隨著時間變化。
TextInput可能是天然具有“動態(tài)狀態(tài)”的最簡單的組件了。下面我們來看看另一類輸入組件,先從處理觸摸開始學習。