Javascript / React Native - 事件监听器仅在第一次触发时触发

时间:2016-12-28 20:01:10

标签: javascript reactjs react-native

根据React Native文档,我设置了一个事件监听器来检测网络状态的变化:

componentDidMount() {
    NetInfo.addEventListener(
       'change',
        this._handleConnectionInfoChange
    );

    NetInfo.fetch().done(
       (connectionInfo) => { this.setState({connectionInfo}); }
    );
}

componentWillUnmount() {
   NetInfo.removeEventListener(
    'change',
    this._handleConnectionInfoChange
  );
}

_handleConnectionInfoChange = (connectionInfo) => {
    this.setState({
      connectionInfo,
    });
};

connectionInfo是在一个单独的方法中呈现的,但除此之外,没有其他更改该状态的实例。当以这种方式设置时,我可以在关闭wifi时检测到第一个更改,并且状态设置为“无”#39;。但是,当我重新连接wifi时,状态不会改变,但保持“无”#。

有什么想法吗?

我已经尝试将this._handleConnectionInfoChange更改为this._handleConnectionInfoChange.bind(this));,但这并没有解决问题。

1 个答案:

答案 0 :(得分:0)

您能否检查this._handleConnectionInfoChange未定义。我不确定你是否可以在ES6 _handleConnectionInfoChange = (connectionInfo) =>{ }的课程中声明这样的方法 请尝试使用此_handleConnectionInfoChange(connectionInfo){ }