2017-01-16 5 views
8

onContentSizeChange scheint auf Android nicht richtig zu feuern scheint. Ereignis wird unter mount ausgelöst, aber nicht unter text height geändert. Identische Code funktioniert für iOS fein:OnContentSizeChange nicht auf Höhenänderung auf Android (Reaktion-native)

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

Welche Version von React Mutter verwenden Sie? Das funktioniert für mich in v0.46. –

Antwort

7

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

In Android onContentSizeChange nur einmal Gebrauch genannt wird onChange statt onContentSizeChange.

-Code

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

Dies ist nicht mehr eine gute Problemumgehung, es ist veraltet: https://github.com/facebook/react-native/commit/bac84ce207a0466cec95626131063751eb48b964 –

0

Einstellen der value nach jeder Änderung das Problem behoben für mich

<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} 
/> 
Verwandte Themen