如何在Redux中正确处理状态之间的状态?

时间:2018-07-18 12:46:09

标签: javascript reactjs redux

假设我具有以下状态: MAIN_MENU,PLAY,DIFFICULTY。

状态之间的流是这样的:

MAIN_MENU-> DIFFICULTY (可以通过单击按钮从Main Menu转到Difficulty)
MAIN_MENU->播放(您可以通过点击按钮从主菜单转到播放)
困难-> MAIN_MENU (您可以通过单击按钮从“困难”进入“主菜单”)
PLAY-> MAIN_MENU (您可以通过点击按钮从“播放”进入主菜单)

我想我需要以下减速器:

export const status = createReducer(MAIN_MENU, {
  [TO_PLAY]() {   
    return PLAY;
  },
  [TO_DIFFICULTY]() {
    return DIFFICULTY;
  }
});

但是,当我尝试回到 MAIN_MENU 状态(来自 PLAY DIFFICULTY )时,我遇到了麻烦

我有一个传递给render的Game组件,它执行以下操作:

export default function Game (props) {
  const {status} = props;

  if(status == MAIN_MENU){
    //logic
  }

单向一切正常。但是当我尝试返回 MAIN_MENU 时,情况很复杂。

如何正确执行? (我的解决方案是:尝试扩展status const(但是,它必须具有其他初始状态,并且其类型为const),如果在Game组件中创建另一个)。我觉得我做错了。

0 个答案:

没有答案