React Native:TextInput元素上的onContentSizeChange事件在Android上不起作用

时间:2017-06-12 15:23:51

标签: javascript android react-native

Android设备上的TextInput事件'onContentSizeChange'有问题。 实际上,当我输入消息直到行尾并且文本转到下一行时TextInput的高度没有更新时,它才被触发。

示例:

return (
      <TextInput
        {...this.props}
        multiline={Boolean(true)}
        onChangeText={(text) => {
          this.setState({text})
        }}
        onContentSizeChange={(event) => {
          this.setState({height: event.nativeEvent.contentSize.height})
        }}
        style={[ additionalStyles, {height: this.state.height}, {fontSize: config.defaultFontSize} ]}
        value={this.state.text}
        underlineColorAndroid={'rgba(0,0,0,0)'}
      />
    )

有人知道为什么会这样吗?

P.S。帮助使用onChange而不是onContentSizeChange

2 个答案:

答案 0 :(得分:1)

请参阅React Native issue #11692。这看起来将在即将发布的版本中修复。目前尚不清楚,它仅在几周前修复,但可能会在0.46。

答案 1 :(得分:0)

尝试 onContentSizeChange

onContentSizeChange={e=>{
                    let inputH = Math.max(e.nativeEvent.contentSize.height, 35)
                    if(inputH>120) inputH =100
                    setIputHeight(inputH)
                }}