React Native 在Modal中,使用TextInput時,無法輸入中文

<Modal visible>
  <TextInput 
    onChange={(text)=>{this.setState({value:text})}}
    value={this.state.value}
 />
</Modal>

在Modal中使用完全受控狀態(tài)[1]的TextInput會出現(xiàn)無法輸入中文(非英文)的bug(僅iOS)

解決

  1. TextInput必須為半受控狀態(tài)
onOk=()=>{
  // submit params
  this.state.value
}

<Modal visible onOk={this.onOK}>
  <TextInput 
    onChange={(text)=>{this.setState({value:text})}}
-   value={this.state.value}
+   defaultValue={this.state.value}
 />
</Modal>
  1. 不要讓外部持續(xù)影響Modal內(nèi)部更新

    2.1. Modal+TextInput 常作為彈窗表單提交組合,外部最多影響第一次的渲染,因此使用defaultValue承載首次默認(rèn)值
    2.2. 應(yīng)避免使用ref獲取TextInput的值,保留onChange+state作為提交時獲取的數(shù)據(jù)

參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容