如何将事件侦听器添加到React Native中的状态

时间:2018-10-22 14:25:29

标签: javascript react-native expo

FlatList的状态更改时,我试图滚动到messages的末尾。目前,我稍等片刻后就使用this.refs.flatList.scrollToEnd();,可以正常使用。我想做的是将事件侦听器添加到messages状态,以便以任何方式更改列表时,它将滚动到列表的末尾。我尝试过

componentDidMount(){
        this.state.messages.addEventListener('change', this._handleNewMessage);
}

但是它不起作用。有人知道我可以做到这一点的方法吗?

1 个答案:

答案 0 :(得分:3)

这就是生命周期方法componentDidUpdate的用途:

  

componentDidUpdate()在更新发生后立即被调用。初始渲染未调用此方法。

     

使用此机会在组件更新后在DOM上进行操作。 ...

自然地,您必须确保仅通过this.state.messages来更改setState,但这已经是正确的,使用componentDidUpdate并不会改变。

componentDidUpdate() {
    this.refs.flatList.scrollToEnd();
}