- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在用 javascript 重写一个大型桌面应用程序 - 具体来说,使用 React/Redux。不同操作的数量反射(reflect)了状态可能需要改变的不同方式的数量。目前,该应用程序中有超过 350 个操作。
状态很复杂,并且状态树的许多不同部分都存在相互依赖关系,因此不可能组合 reducer ,因为来自不同根 reducer 的隔离状态树不适用于此应用程序。
因此,我有一个主 reducer ,带有一个用于操作的 switch 语句 - 包含超过 350 个案例。对于每种情况,我都必须挑选所需的总体状态的位,并将其明确地传递给子 reducer 。大多数情况下,这个子 reducer (本身处理大量 Action 类型)会交给各种孙 reducer 等等。目前我的 reducer 树的深度为 5。
为了增加更多的复杂性,我的近 30% 的操作都是异步的,因此我使用 redux-thunk 来处理这些 - 在这种情况下很难做到正确。
我的问题是 - 是否有更好的 Flux 实现来处理这种级别的复杂性,或者是否有一种使用不同于规范的 Redux 的方法,并且允许我更轻松地管理此操作/ reducer 复杂性?
谢谢
最佳答案
我建议不要使用一个大型 reducer 来共享状态,而是建议在操作有效负载中提供更多信息,并将较小的 reducer 与combineReducers
结合起来。您可以使用 redux-thunk 和 getState
函数参数来完成此操作。
function action(id) {
return (dispatch, getState) => {
const value = getState().ui.form.value; // read part of state tree
dispatch({ type: 'ACTION', payload: { id, value } });
}
}
这样,您的 reducer 就可以在操作有效负载中获得所需的所有信息,而不必共享部分状态。
关于reactjs - ReduxReducer 复杂性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47091085/
我有一个Container、一个actionCreator 和一个reducer。在下面的代码中,是什么使Reducer能够返回action.text而不是更新后的状态对象?我认为 reducer 必
我目前正在用 javascript 重写一个大型桌面应用程序 - 具体来说,使用 React/Redux。不同操作的数量反射(reflect)了状态可能需要改变的不同方式的数量。目前,该应用程序中有超
这是新的。 我有一个通过 Fetch“GET”从 ASP.NET Core API 检索数据的操作。它被发送到 reducer 。调用 reducer ,此时,虽然对象使其到达那里,但状态并未更新。所
我在 Redux 中有一个状态,当前呈现如下: 点击前: {0: { open: false, negation: false, close: false }, 1:
向 action.data 添加回调是否有任何错误/反模式(就“thinking-in-react/redux”而言)?传递到一个 Action ? // reducer ACTION_FOR_RED
所以这里发生的是我正在尝试设置自动分页。我设置了一个 while 循环,在返回数据中的数组项数量大于 0 时发送 get 请求。每个循环都会将数据发送到我的 reducer AppendUserHis
我遇到了一个让我大吃一惊的问题。我正在使用 React 和 Redux 开发我的 Web 应用程序,我的应用程序使用使用 Firebase 实现的通知系统。每个通知的结构如下: var notific
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 3 年前。 Improv
我在网页上有一个简单的两个按钮,一个用于递增,一个用于递减整数。 一旦我点击+按钮,它就会在当前值上加1。 下面是我的Reducer,我用setTimeout包裹了“INCRMENT”,当我点击+按钮
我的代码如下所示: import { SAVE_SEARCH } from '../actions/index'; export default function (state = [], actio
我有一组评论,我想根据 ID 进行过滤并更改特定的键/值对。我的控制台日志函数返回数组中的正确项目,但我不确定获取 .filter 函数结果并将“liked”键从“false”更改为“true”的正确
我是一名优秀的程序员,十分优秀!