【问题标题】:Socket IO in React Native firing multiple eventsReact Native 中的 Socket IO 触发多个事件
【发布时间】:2017-04-30 08:14:53
【问题描述】:

我一直在阅读类似的主题,但我并没有真正得到他们的解决方案。我已经读过这种行为的原因是如果您正在重新注册一个新的事件处理程序。在我的代码中,我不确定要在哪一部分重新注册一个新的事件处理程序。

服务器

socket.on('test', function (data) {
  socket.emit('test2', data);
});

客户

  save() {
    app.io.emit('test', { hello: 'world' });
    app.io.on('test2', (res)=>{
      if(Object.keys(res).length > 0) {
        console.log(res);
      }
    })
  }

  render() {
    return (
      <View style={styles.container}>
        <Button title='Save' onPress={this.save}></Button>
      </View>
    );
  }

这里的问题是,当我点击 SAVE 按钮时,函数app.io.on 抛出的返回次数不断增加。

例如:

第一次点击返回一次 第二次点击返回两次 第三次点击返回 3x

有没有办法防止这种情况发生,就像它应该只返回一次一样?提前致谢。

【问题讨论】:

    标签: react-native socket.io


    【解决方案1】:

    反正我是通过移动代码整理出来的

    app.io.on('test2', (res)=>{
      if(Object.keys(res).length > 0) {
        console.log(res);
      }
    })
    

    在 componentDidMount() 上,所以它会调用一次。每次调用此函数时,事件都会不断增加(触发多次),这是我的问题的原因。

    【讨论】:

      猜你喜欢
      • 2019-09-20
      • 2019-07-05
      • 2017-03-07
      • 1970-01-01
      • 2019-10-10
      • 1970-01-01
      • 2020-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多