组件之间的Redux共享操作

时间:2016-07-31 00:35:34

标签: javascript reactjs react-native redux

我正在使用react-native和redux构建移动应用程序,我正在以这种方式按功能组织我的项目结构:

的Component1 /
--- Component1Actions.js
--- Component1Reducer.js
---...
COMPONENT2 /
--- Component2Actions.js
--- Component2Reducer.js
---...

在我看来,这种项目结构令人惊讶,原因很多,首先是因为它具有很强的可扩展性。 到目前为止我遇到的唯一问题是2个不同的组件必须分配相同的操作(例如文本框中的简单文本更改)。
在2个不同的文件中重写完全相同的动作是没有意义的,我也知道将动作从一个组件导入到另一个组件实际上是一种不好的做法。 我想在全局模块中保留这些“可共享”的动作,然后将它们导入到各个组件中,但我不确定它是否是一个好习惯。
我想知道处理这种情况的最佳方法 提前谢谢。

2 个答案:

答案 0 :(得分:7)

你可以处理相同的" ACTION_TYPE"多个减速器。

  

......行动是设计全球化的。它们并不意味着与特定的减速器(Dan Abramov)联系在一起

你可以处理" LOGOUT"所有reducers中的操作,只返回初始状态..并将应用程序设置为默认值

例如..

const postReducer = (state = initial, action) => {
  swtich(action.type) {
  ...
  case "LOGOUT": 
    return initial 
  default: 
    return state
  }
}

答案 1 :(得分:0)

  1. 在常见的reducers.js,actions.js中定义它。
  2. 在撰写时将其传递给REACT组件connect(mapStateToProps, {commonAction, ...actions})