2017-05-04 19 views
0

下面是代碼:[反應母語]按下時的TextInput沒有插入新行返回鍵

<TextInput multiline={true} style={{height:160}} onChangeText={(text) => this._changeBody(text)} value={this.state.body} blurOnSubmit={false} placeholder={ARTICLE_BODY_TIPS}/> 

當我按下回車鍵,它沒有插入新行,操作系統是Android和RN版本是0.43.3

+0

https://snack.expo.io/S1x65UOyb這是一個工作演示。一切工作正常我。 – eden

+0

你的RN版本是0.43.3嗎?它不適合我。 – cityvoice

+0

我剛纔看到一個關於這個問題的公開問題。 https://github.com/facebook/react-native/issues/12717現在,最好的解決方案是降級回舊版本的RN。如果它關於在單個客戶端上工作,只需將手機的鍵盤更改爲谷歌鍵盤即可。沒有問題,或本地的。 – eden

回答

0

試試吧!它也在線的中間工作!

<TextInput 
       value={this.state.query} 
       onChangeText={text => this.setState({ query: text, allowEditing: true })} 

       selection = {this.state.selection} 
       onSelectionChange={(event) => this.setState({ cursorPosition: event.nativeEvent.selection, selection: event.nativeEvent.selection, allowEditing: true })} 
       onSubmitEditing={() => { 
       const { query, cursorPosition } = this.state; 
       let newText = query; 
       const ar = newText.split(''); 
       ar.splice(cursorPosition.start, 0, '\n'); 
       newText = ar.join(''); 
       if (cursorPosition.start === query.length && query.endsWith('\n')) { 
        this.setState({ query: newText }); 
       } else if (this.state.allowEditing) { 
        this.setState({ 
        query: newText, 
        selection: { 
         start: cursorPosition.start + 1, 
         end: cursorPosition.end + 1 
        }, 
        allowEditing: !this.state.allowEditing 
        }); 
       } 
       }} 
       multiline = {true} 
       numberOfLines = {10} 
       blurOnSubmit={false} 
       editable={true} 
      /> 
this.state = { 
    query: '', 
    cursorPosition: [0,0], 
    selection: null, 
    allowEditing: true 
}