如何将action分派到特定的reducer?

2024-04-22

我有多个减速器,每个减速器都有一个类型“INIT”。我想要实现的是,从触发动作的位置来看,只有相关的减速器才能接收该动作。有没有中间件可以做到这一点?


您在创建减速器时是否重复使用减速器逻辑?

你可以尝试这样的事情:-

function createCounterWithNamedType(counterName = '') {
    return function counter(state = 0, action) {
        switch (action.type) {
            case `INCREMENT_${counterName}`:
                return state + 1;
            case `DECREMENT_${counterName}`:
                return state - 1;
            default:
                return state;
        }
    }
}


const rootReducer = combineReducers({
    counterA : createCounterWithNamedType('A'),
    counterB : createCounterWithNamedType('B'),
    counterC : createCounterWithNamedType('C'),
});

store.dispatch({type : 'INCREMENT_B'});
console.log(store.getState());

这就是所谓的高阶减速器,您可以通过创建包装函数来使用相同的减速器逻辑,如上面的代码所示。

您可以查看有关高阶减速器的更多信息here https://redux.js.org/docs/recipes/reducers/ReusingReducerLogic.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将action分派到特定的reducer? 的相关文章

  • Create React App 提供的react-scripts包需要依赖:

    项目依赖树可能有问题 这可能不是 Create React App 中的错误 而是您需要在本地修复的问题 Create React App 提供的react scripts包需要依赖 babel eslint 9 0 0 不要尝试手动安装它
  • 从函数 React Native 获取字符串结果

    我创建了一个连接到 redux 并返回当前加载的组件item sname 作为导航标题 但是当我尝试从此组件获取标题时 它会出现以下错误 Error title cannot be defined as a function in navi
  • 如何在 Redux 中为每个实例创建一个存储?

    有时 在 Redux 应用程序中为每个实例创建一个存储会很有用 Redux 的创建者自己创建了一个 Gist 来描述如何实现这一点 https gist github com gaearon eeee2f619620ab7b55673a4e
  • 在 React-Redux 中实时重新排序列表的最佳方法?

    I m currently build an app that have a realtime list the view of list as bellow picture 当触发以下操作之一时 此列表将实时更新 有消息更新 update
  • 如果服务器端已有数据,则阻止 componentDidMount 获取数据

    ComponentDidMount 在组件安装时触发 包括在服务器端渲染后进行水合时 我在网上找到的解决方案之一是检查该州是否有数据 然而 这需要在每个组件上包含大量代码 还有哪些其他解决方案 componentDidMount if re
  • React - 反应脚本 publicPath

    是否有可能覆盖开发环境的反应脚本中的 publicPath 我使用 symfony 并且在 twig 中包含了 React 应用程序 所以我必须更改资产来提供服务http localhost 3000 static js bundle js
  • React 处理表单提交

    我正在尝试在 React Redux 中创建一个表单 现在我只希望表单在提交表单时触发我的函数handleSubmit 然而目前看来该功能是在页面加载时立即触发的 export default class AssetsAdd extends
  • 从redux中的reducer获取ID

    我是个新手 正在尝试使用 React 和 Redux 构建一个简单的书签应用程序 我无法解决这个问题 用户可以创建一个书签并将其添加到多个文件夹 所以我派了一个addMark bookmark 行动 然后addMark folder or
  • 如何以递归方式将 React 组件渲染到自身中

    我有一个组件 即列表组件 列表组件可以渲染项目 通过组件ListItem 通过下面的内容可以轻松实现 import React from react import ListItem from list item list item clas
  • 在 React 中的按键上应用按钮“活动”样式

    我在 React Redux 中有一个鼓应用程序 它的功能齐全 但我希望能够在相应的按键按下时应用活动按钮样式 就像我物理单击按钮时一样 就目前情况而言 单击按钮会进行转换 但键入相应的键只会播放音频文件 而不会真正链接到按钮 有没有办法在
  • Axios:收到两个请求 OPTIONS 和 POST

    我正在尝试发布数据 一切正常 但我不知道为什么我收到两个请求OPTIONS POST POST OPTIONS 这是代码 const url http rest learncode academy api johnbob myusers e
  • React Router v4 基本名称和自定义历史记录

    我想为我的路由分配一个基本名称 我可以使用 BrowserRouter 来实现 不过 我还想指定自定义历史记录 以便我可以以编程方式导航我的用户 我可以用路由器做到这一点 然而我不能两者都做 是否可以扩展其中一个路由器以支持此功能或围绕其包
  • 将属性映射到react-redux中的状态

    我有一个使用的组件state向用户提供数据 例如 div this state variableInState div 该组件可以调度一些方法 例如onClick行动 我目前正在使用react redux an connect映射方法sto
  • Redux Toolkit RTK Query 发送查询参数

    如何使用 Redux Toolkit RTK 查询将查询参数传递到 api import createApi fetchBaseQuery from reduxjs toolkit query react const baseUrl xxx
  • useSelector 常量在调度后不更新

    这里有一个代码沙盒 https codesandbox io s competent moon 9ehen getIDs 更新cells 然后需要initializeCells 但是 此更改在分派操作后不会反映出来 尽管如此 我还是可以看到
  • 使用异步数据初始化组件

    我想弄清楚如何以及在哪里在react redux thunk中为我的选择框加载数据 即在我的操作上调用调度 我不确定它是否应该放入我的应用程序容器的构造函数中 或者我应该将其加载到我的组件中 在我的示例中 MyDropdown 我的主要应用
  • useState 由于某种原因没有更新?

    当我尝试使用 axios 从后端 API 获取一些数据 并在由于某种原因获得结果后设置状态时 状态不会更新 当我尝试使用状态时 它只会向我显示一个空数组 但有趣的是当我console log res data 它会毫无问题地向我显示我的列表
  • DevSettings.reload() 用于 React Native 中的注销

    问题 我正在将混合应用程序的注销功能从本机迁移到反应本机 要求 它可以在生产环境和设备上运行 它导航到应用程序的根屏幕 登录屏幕 它清除 redux 存储 很高兴有 它会取消任何飞行中的请求 最初 我们计划做这样的事情 如何重置 redux
  • 在严格模式下,一个对象字面量不能有多个同名属性

    这是我的代码 import combineReducers from redux import postReducers from postReducers import stationsReducer from TrackCircuitS
  • React-Redux:绑定按键操作以启动减速器序列的规范方法是什么?

    这是一个关于react redux的新手问题 我花了几个小时四处搜寻才发现 所以我发布了这个问题 然后为后代回答 也可能是代码审查 我正在使用 React Redux 创建一个游戏 我想使用 WASD 键在小地图上移动角色 这只是更大努力的

随机推荐