TextInput元件在ios上自帶輸入法下無法輸入中文的情況
阿新 • • 發佈:2018-12-09
最近,遇到了一個情況,react-native的TextInput元件在ios平臺只有自帶輸入法(沒有安裝其他的第三方輸入法)的情況下,沒有辦法輸入中文。
程式碼如下:
情況1:
<TextInput underlineColorAndroid="transparent" style={{height: 40, flex:1,paddingHorizontal:6}} onChangeText={(text) => this.setState({taskName : text})} value={this.state.taskName} //初始值為空字串 placeholder='新增任務名稱' />
情況2:
<TextInput underlineColorAndroid="transparent" multiline={true} style={{ borderWidth: 1, borderColor: '#E8E8E8', borderRadius: 6, height: 180, padding: 10, textAlignVertical:'top', }} defaultValue={this.state.taskDesc} //初始值為空字串 placeholder='請新增描述' onChangeText={(text) => this.setState({taskDesc : text})} />
在以上兩種情況下,用ios的自帶輸入法輸入中文時,沒有可以選擇的中文字元,只能輸入英文。
解決辦法:去除 value 或 defaultValue 屬性!!!
即:
<TextInput underlineColorAndroid="transparent" style={{height: 40, flex:1,paddingHorizontal:6}} onChangeText={(text) => this.setState({taskName : text})} placeholder='新增任務名稱' /> //或 <TextInput underlineColorAndroid="transparent" multiline={true} style={{ borderWidth: 1, borderColor: '#E8E8E8', borderRadius: 6, height: 180, padding: 10, textAlignVertical:'top', }} placeholder='請新增描述' onChangeText={(text) => this.setState({taskDesc : text})} />
文章僅為本人學習過程的一個記錄,僅供參考,如有問題,歡迎指出!