如何将一个函数保存到Redux store中?

3
我想将一个函数(引用)保存到我的Redux store中,这样我就可以:
  1. 将函数引用传递给连接到 store state 的组件,或者
  2. 检索存储的函数并在 action creator 中运行它。
一般来说,人们普遍认为你不应该将函数引用存储在 Redux store 中(因为数据应该是可序列化的)。有没有什么方法可以绕过这个问题,以实现上述两个操作?

如果您不介意,尽管这并不是通常推荐的做法,您特别遇到了哪些问题?函数引用是一个值,您可以像处理其他类型的值一样处理它。 - zerkms
我想我不理解副作用。但是,除此之外,如果不建议这样做,那么我想知道是否有替代方案,或者是否有人知道可以帮助解决这个问题的软件包。 - JoeTidee
副作用: 许多额外的库/工具都假定状态是可序列化的。如果不是,则它们可能会出现故障。 - zerkms
可能会出现服务器端渲染问题,其中它被字符串化为JSON对象并作为HTML内容提供。 - dude
1个回答

3

根据Redux FAQ中关于状态中非序列化项的条目

强烈建议您只将纯粹可序列化的对象、数组和基本类型放入您的存储器中。理论上可以将非序列化项插入存储器,但这样做可能会破坏持久化和重新生成存储器内容的能力,并干扰时间旅行调试。

如果您不介意像持久化和时间旅行调试等功能可能无法按预期工作,那么完全可以将非序列化项放入Redux存储器中。最终,这是您的应用程序,如何实现由您决定。与Redux的许多其他方面一样,请确保您了解所涉及的权衡。


3
我的应用程序出现了问题,因为第三方包要求存储状态必须是可以完全序列化的。 - JoeTidee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接