我应该将函数引用存储在 Redux 存储中吗?

2024-03-05

我正在尝试建立键盘快捷键支持进入我的 React/Redux 应用程序惯用的 React/Redux 方式。我计划执行此操作的方法是拥有以下操作创建者和关联操作:

registerShortcut(keyCode, actionCreatorFuncReference)

然后reducer会更新一个registeredShortcutsredux 存储中的对象,其 keyCodes 映射到actionCreatorFuncReferences。然后我的根组件会监听keyup并查看是否有关联的keyCode已注册,如果已注册,则通过操作创建者函数引用分派映射的操作。

然而,这将是我第一次在我的 Redux 存储中存储函数引用。迄今为止,我只拥有带有普通值(字符串、整数等)的键的对象。

Redux 文档说:

您应该尽力保持状态可序列化。不要在其中放入任何无法轻松转换为 JSON 的内容。

这是否表明在我的 Redux 存储中存储此类函数引用是一个坏主意?如果是这样,什么是更好的方法来完成我在 React/Redux 中尝试做的事情?

另一种方法是仅存储映射keyCodes以及根 React 组件本身中的函数引用,但这感觉不太像 Redux,因为现在应用程序状态不在 Redux 存储中。


不,您不应该将函数引用存储在 redux 存储中。它们不可序列化,正如您所提到的,状态应该始终可序列化。我能想到的最对 redux 友好的方法就是将热键映射保留到他们的actionCreatorFuncNames.

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

我应该将函数引用存储在 Redux 存储中吗? 的相关文章

  • 如何在redux减速器中更新二维数组中的值?

    我正在尝试更新索引处的值 i j 在 redux 减速器中使用展开运算符在 2D 数组中 我的减速器看起来像 export default state action gt switch action type case INSERT ret
  • Redux 表单中 中的 className

    我创建了一个 redux form 我想将 className 添加到每个字段以使用 css 自定义它们 每个字段的代码是
  • 如何对这个 Redux thunk 进行单元测试?

    所以我有这个 Redux 动作创建器正在使用redux thunk中间件 accountDetailsActions js export function updateProduct product return dispatch getS
  • 将属性映射到react-redux中的状态

    我有一个使用的组件state向用户提供数据 例如 div this state variableInState div 该组件可以调度一些方法 例如onClick行动 我目前正在使用react redux an connect映射方法sto
  • 如何使用 @ngrx/data 自定义我的减速器?

    我正在学习使用 ngrx data 确实 使用该库我推进了很多代码 但在个性化它时我遇到了问题 我已经了解了如何将字段添加到集合中 export const entityMetadata EntityMetadataMap User add
  • 在 socket.on() 的回调上调度操作

    所以基本上我得到了这个套接字 它工作正常 向我发送 新订单 消息 我正在使用 redux 并且我想分派一个操作 然后减速器会得到它并且我的商店将会更新 但这段代码没有做任何事情 socket on new order order gt re
  • 为什么express服务器接收到的前端数据是未定义的?

    我目前正在开发社交媒体 Mern Stack React 应用程序 我使用 Node js 和 Express 作为我的后端服务 还使用 mongoose 来存储我的数据 并使用 axios 和 redux thunk 将后端连接到前端 到
  • 如何在 redux-toolkit 中正确使用 PayloadAction 和元类型?

    简化示例 import createSlice PayloadAction from reduxjs toolkit type Cake flavor string size S M L const initialState all Cak
  • React Redux 在 Modal 中的使用

    我正在 React 中学习 Redux 我在 React 中使用 Redux 进行 Modal 开发 我的代码如下 render return
  • React Redux 混乱

    事实证明 Redux 对我来说有点难以理解 我想知道是否有人可以帮助我指出正确的方向 以获取我想要的结果 只是一个预警 我正在使用 ES6 语法 好的 我已经设置了一些沙箱来测试 redux 的工作原理 这是我正在使用的当前文件设置 act
  • 如何在 Redux 减速器中处理树形实体?

    我有点陷入思考如何实现一个减速器 其中它的实体可以有相同类型的子级 让我们以 Reddit 评论为例 每个评论都可以有子评论 子评论本身也可以有评论等 为了简单起见 评论是类型的记录 id pageId value children wit
  • 如何在 RxJS 中通过 ID 去抖

    我的问题是下一个 我想取消我的应用程序的点赞功能 我使用操作在我的应用程序中进行更改 例如 dispatch likePost 1 gt dispatch type LIKE POST id 1 给出下一个例子 我在时间 0 发送一个操作
  • Redux 中的排队操作

    我目前遇到的情况是我需要连续运行 Redux Actions 我看过各种中间件 比如 redux promise 看起来不错如果您知道触发根操作 由于缺乏更好的术语 时的连续操作是什么 本质上 我想维护一个可以随时添加的操作队列 每个对象在
  • 我的 rtk 切片的初始状态未按预期保存在存储中?

    目前正在学习如何将 RTK 与 typescript 结合使用 我有 2 个切片 其中一个是我使用 RTK 查询制作的以获取数据 称为apiSlice ts 另一个使用 createSlice 来处理我的待办事项应用程序的同步状态更改 称为
  • 如何将 setTimeout 添加到使用 redux 的 fetch Promise 中?

    经过一定的秒数后 如果获取承诺尚未得到解决 我想向用户显示超时错误 我在这里看到了一些添加 setTimeout 来获取的很好的例子 https github com github fetch issues 175 https github
  • 如何从mapDispatchToProps内部访问状态

    需要根据状态或演示组件道具来调度操作 const mapDispatchToProps dispatch gt return onClick gt if state someValue this props someValue dispat
  • 在严格模式下,一个对象字面量不能有多个同名属性

    这是我的代码 import combineReducers from redux import postReducers from postReducers import stationsReducer from TrackCircuitS
  • 重新选择 - 创建一个仅用于获取部分状态的记忆选择器是否有意义?

    我有一个普通的选择器 仅用于获取状态的一部分 export const getAllPosts state gt return state posts 如果我使用重新选择来包装选择器 import createSelector from r
  • React + Redux 和 REST API?

    我在 Node 中构建了一个简单的 CRUD 应用程序 并已在 Express 中完成了其余 API 的创建 我现在正在寻求添加前端功能 并希望使用 React Redux 作为学习练习 然而 似乎所有围绕此的教程都直接使用 Redux 访
  • React Native + Redux 基本身份验证

    我正在寻找一种为我的反应本机应用程序创建基本身份验证的方法 我找不到任何反应本机应用程序的好例子 要登录 应用程序将电子邮件 密码 clientSecret 发送到我的服务器 如果OK 服务器返回accessToken refreshTok

随机推荐