源代码
redux.js
import parent_reducer from './parent_redux';
import { combineReducers } from 'redux';
export default combineReducers({ parent:parent_reducer });
parent_redux.js
import { combineReducers } from 'redux';
import { createAction, handleActions } from 'redux-actions';
import child_reducer from './child_redux';
const initial_state = {
number: 0
};
const parent_reducer = handleActions({
...
}, initial_state);
export default combineReducers({ self: parent_reducer, child: child_reducer });
child_reudx.js
import { createAction, handleActions } from 'redux-actions';
const initial_state = {
number: 0
};
export default handleActions({
...
}, initial_state);
我想要什么
在上面的源码中,访问number变量时,是这样的。 state.parent.self.number 和state.parent.child.number
但我想按如下方式访问它。 state.parent.number 和state.parent.child.number
这种不便经常发生在分层使用 redux 的时候。
有什么办法可以解决吗?感谢阅读:)
最佳答案
redux.js
import parent_reducer from './parent_redux';
import { combineReducers } from 'redux';
export default combineReducers({ parent:parent_reducer });
parent_redux.js
import { combineReducers } from 'redux';
import { createAction, handleActions } from 'redux-actions';
import child_reducer from './child_redux';
const initial_parent_state = 0;
const parent_reducer = handleActions({
...
}, initial_parent_state);
export default combineReducers({ number: parent_reducer, child:
child_reducer });
child_reudx.js
import { createAction, handleActions } from 'redux-actions';
const initial_state = {
number: 0
};
export default handleActions({
...
}, initial_state);
我只是对 parent_redux.js
做了一个小改动,同时保持其余代码不变。
这应该会为您提供所需的状态结构。
你必须明白一件事,你之前的两个 reducer 都返回了一个具有相同键 number
的对象,所以你需要附加一个键 self
作为额外的建立“Redux”的父子关系来构建状态。
相反,如果您返回原始值,则存储该值的键可以与前一个 reducer 返回的对象中的键相同。
希望这能在不破坏代码模式的情况下为您解决问题。
关于javascript - 我可以像这样访问 redux 中的状态吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48049071/