javascript - 我可以像这样访问 redux 中的状态吗?

标签 javascript reactjs redux react-redux redux-actions

源代码

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.numberstate.parent.child.number

但我想按如下方式访问它。 state.parent.numberstate.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/

相关文章:

javascript - Redux 调度在什么情况下可能会发生变化?

javascript - 从对象列表中逐行渲染表

javascript - 防止 Elements Below 弹出窗口响应

javascript - PHP-将查询结果插入到另一个查询语句中

javascript - Typescript 样式组件错误 : "Type ' { children: string; }' has no properties in common with type ' IntrinsicAttributes'.“

javascript - 应用程序中的新组件无法连接到 redux

javascript - Ngrx 所有重新选择选择器在单状态切片更改时运行

javascript - jquery - 从动态创建的元素中获取总和

javascript - 等待对象数组加载并对其进行映射()。 react

reactjs - React 18&react-i18next Trans组件插值问题