2017-01-16 113 views
8

onContentSizeChange似乎無法在Android上正常觸發。事件發生在mount,但沒有被解僱text height更改。相同的代碼工作正常的iOS:onContentSizeChange未在Android上觸發高度更改(react-native)

<TextInput 
    editable = {true} 
    multiline = {true} 
    [...] 
    onContentSizeChange={(event) => { 
    this.setState({height: event.nativeEvent.contentSize.height}); 
    }} 
    style={{height: Math.max(35, this.state.height)}} 
/> 
+1

反應原住民您正在使用什麼版本的了什麼問題?這在v0.46中適用於我。 –

回答

7

https://github.com/facebook/react-native/issues/6552#issuecomment-269989962

在Android中onContentSizeChange只調用一次 使用onChange,而不是onContentSizeChange

代碼

<TextInput 
    editable = {true} 
    multiline = {true} 
    [...] 
    onChange={(event) => { 
    this.setState({height: event.nativeEvent.contentSize.height}); 
    }} 
    style={{height: Math.max(35, this.state.height)}} 
/> 
+1

這不再是一個很好的解決方法,它已棄用:https://github.com/facebook/react-native/commit/bac84ce207a0466cec95626131063751eb48b964 –

0

設置每次更改後value固定我

<TextInput 
    multiline={true} 
    onChangeText={(text) => { 
    this.setState({text}); 
    }} 
    onContentSizeChange={(event) => { 
    this.setState({height: event.nativeEvent.contentSize.height}); 
    }} 
    style={{height: this.state.height}} 
    value={this.state.text} 
/>