如何使用redux切换为移动菜单中的嵌套链接组件做出反应

时间:2018-05-06 11:58:10

标签: reactjs redux

我创建了一个响应式菜单,它共享一个导航组件,其中嵌入了一个链接组件。那么工具栏>导航>链接。我还有一个侧边栏(移动菜单),它共享导航和链接组件:边栏>导航>链接。

所以我在切换关闭和菜单图标以及显示和隐藏移动侧边栏而不使用Redux方面取得了一些成功。但我意识到嵌套,超出父母和孩子的道具不适合我,所以我决定尝试Redux但设置有点复杂,我尝试使用console.log看看发生了什么,但行动不要似乎订阅或者某事没有联系到更新状态。

有人可以帮我看看发生了什么吗?

该项目的编辑在这里,虽然有一个ES5 / ES6转换问题,我尝试在那里安装Babel但不知道如何在Stackblitz上解决。那里的代码和文件结构: https://stackblitz.com/edit/react-xey1dv

1 个答案:

答案 0 :(得分:2)

首先,您必须更改mapStateToProps以收听特定的道具值,例如减速器中的'isOpened'。

const mapStateToProps = state => {
  return {
    isOpened: state.isOpened
  };
};

然后在toggleNav中你应该使用'this.props'检查这个对象的状态,

if (!this.props.isOpened) {
      openNavigation();
      console.log('active');
    }
    else {
      closeNavigation();
      console.log('not-active');
    }