想象一个包含两个组件和一个主条目的应用程序:
Components
App
Actions.js (import some module actions)
Reducer.js
Selectors.js
Container.jsx
Module
Actions.js
Reducer.js
Selectors.js
Container.jsx
Lib
store.js
main.jsx
当我从App调用Module操作时,Module reducer会更新状态。它的基本还原用量非常有效。
现在,模块被移动到一个单独的包中(每个包都使用Webpack构建),并使用lerna(NPN链接替代)来引导应用程序中的模块(模块是应用程序的依赖)。模块导出3件事(容器,减速器和动作)。进口减速机是"链接"到"实例"应用商店。这就像使用基本的NPM库。
Packages
App
Module
lerna.json
但是有了这个结构,当我调用模块动作时,reducer会导致应用程序卸载。我有一个简单的减速器的双/三/无限检查,我不明白问题在哪里。我尝试使用这些代码:
故障
case types.TEST:
return {
...state,
test: action.payload,
};
故障
case types.TEST:
return {
...state,
};
工作
case types.TEST:
return state,
每次我尝试更新状态时,我都无法更改任何值。非常奇怪的问题......一个想法?