如何将我的组件范围绑定到react-redux中的mapStateToProps?

时间:2016-05-20 18:56:21

标签: react-redux

假设我的组件不需要本地状态就不需要污染我的商店的简单本地组件标志是不合理的,更不用说需要调度程序和操作处理程序的所有代码开销。 react-redux避免了当地的国家吗?除了把所有东西都放进我的商店之外,我没有看到我的用例的解决方法 - 我做了太多的工作。

1 个答案:

答案 0 :(得分:0)

回答你的问题:是的,本地国家会被react-redux避开。

redux的理念是您的组件纯粹是应用程序状态的视图。他们自己不应该持有国家。

然而,在你愤怒地叹息之前,你应该注意到redux的一个好处就是商店很好用。它只是一个状态树,你编写的任何reducer只需要处理它自己的那部分树。我的应用程序中有一些缩减器,它们都是五行:

export default const isFullScreen = (state = false, action = null) => {
  if (action && action.type === actions.TOGGLE_FULL_SCREEN) {
    return !state;
  }
  return state;
};

将所有东西,甚至是小东西放在商店里的好处很多。但最大的一点是任何其他组件都可以通过mapStateToProps知道任何其他组件的状态。如果你依赖于本地状态,那么透明度就会消失,事情可能(并且确实)会失去同步。另一个好处是你可以实现很酷的时间旅行,你可以从状态历史中推送和弹出状态的快照,然后通过应用程序中的操作向后和向前移动(也可以消除本地状态)。

但是,如果在一天结束时,这还不足以说服你将所有东西放入商店,那么仍然可以在不破坏redux的情况下使用本地状态。我不推荐它。

祝你好运!