2017-04-26 22 views
1

反應,原生版本:0.43.4 平臺:iOS的自動更正iOS上不火onChangeText在反應母語

重現步驟:

  1. 類型拼寫錯誤的單詞中的TextInput
  2. 按空格確認它尚未更改爲正確的單詞。如果它只是刪除,並再次使它拼寫錯誤的話。
  3. 現在iOS必須以紅色虛線顯示加下劃線的單詞。點擊它,iOS會顯示2種類型的自動更正。其中一個位於該單詞的旁邊,另一個位於鍵盤的頂部。
  4. 從鍵盤頂部選擇自動更正。
  5. 通過檢查日誌等你會知道它沒有發起任何onChangeText事件。

關於如何使它工作的任何想法?

+0

那麼,什麼是你的問題? –

回答

1

對於任何人碰到這個絆腳石,GitHub的問題就在這裏:https://github.com/facebook/react-native/issues/2552

我想到了一個臨時的解決方法,而這個問題仍然是開放的。基本上,在您的onSubmitEditing回調中,請先撥打您的onChangeText回撥。如果您輸入的是「awrsome」,並且自動更正爲「awesome」,則onChangeTextCallback將被稱爲「awesome」。

onChangeTextCallback = (text) => { /* do stuff */ } 
onSubmitEditingCallback = (e) => { /* do stuff */ } 

然後在您的JSX:

<TextInput 
    onChangeText = {onChangeTextCallback} 
    onSubmitEditing = {(e) => { 
     onChangeTextCallback(e.nativeEvent.text); 
     onSubmitEditingCallback(e); 
    }} 
    />