根据套接字事件浏览本机屏幕

时间:2018-06-21 19:56:06

标签: javascript reactjs react-native redux-saga

我想知道基于react-native事件在redux-saga屏幕(使用web-socket)之间导航的最佳实践是什么。

我的应用使用Web套接字(socket.io)发出和接收事件。
对于某些事件,我想更改屏幕。
例如,对于即将到来的score事件,我希望应用程序导航到scoreboard屏幕。

function subscribe (socket) {
  return eventChannel(emit => {
    socket.on('score', () => {
      emit(MyActions.receiveScore())
    })
    return () => {}
  })
}

我可以在reducer中做这样的事情:

// reducer.js
const myReducer = (state) =>
  merge(state, { screen: 'ScoreboardScreen' })

然后在根组件中导航:

// rootScreen.js
onComponentDidUpdated() {
  this.props.navigation.navigate(this.props.screen)
}

但是我不喜欢我的状态包含一个可以处理屏幕的变量的想法。
而且,我可以感觉到一旦组件由于screen以外的其他原因而更新,将会出现很多错误。

如何基于socket的事件处理此屏幕导航?

0 个答案:

没有答案