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);
在上面的源代码中,访问数字变量时,如下所示。 state.parent.self.number 和 state.parent.child.number
但我想按如下方式访问它。 state.parent.number 和 state.parent.child.number
在分层次使用redux时经常会出现这种不便。
有什么办法可以解决吗? Thansk阅读:)
答案 0 :(得分:1)
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
进行了一些小改动,同时保持其余代码相同。
这应该为您提供所需的状态结构。
你必须明白一件事,你的两个减速器都使用相同的键number
返回一个对象,所以你需要附加一个键self
作为额外的来建立一个父子' Redux'的关系建立国家。
相反,如果返回原始值,则存储该值的键可以与上一个reducer返回的对象中的键相同。
希望这能为您解决问题,而不会破坏您的代码模式。