我正在尝试建立键盘快捷键支持进入我的 React/Redux 应用程序惯用的 React/Redux 方式。我计划执行此操作的方法是拥有以下操作创建者和关联操作:
registerShortcut(keyCode, actionCreatorFuncReference)
然后reducer会更新一个registeredShortcuts
redux 存储中的对象,其 keyCodes 映射到actionCreatorFuncReferences
。然后我的根组件会监听keyup
并查看是否有关联的keyCode
已注册,如果已注册,则通过操作创建者函数引用分派映射的操作。
然而,这将是我第一次在我的 Redux 存储中存储函数引用。迄今为止,我只拥有带有普通值(字符串、整数等)的键的对象。
Redux 文档说:
您应该尽力保持状态可序列化。不要在其中放入任何无法轻松转换为 JSON 的内容。
这是否表明在我的 Redux 存储中存储此类函数引用是一个坏主意?如果是这样,什么是更好的方法来完成我在 React/Redux 中尝试做的事情?
另一种方法是仅存储映射keyCodes
以及根 React 组件本身中的函数引用,但这感觉不太像 Redux,因为现在应用程序状态不在 Redux 存储中。
不,您不应该将函数引用存储在 redux 存储中。它们不可序列化,正如您所提到的,状态应该始终可序列化。我能想到的最对 redux 友好的方法就是将热键映射保留到他们的actionCreatorFuncNames
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)