Я пытаюсь создать поддержку ярлыков клавиатуры в моем приложении React/Redux в идиоматическом режиме React/Redux. Способ, которым я планирую это сделать, - создать следующий создатель действия и связанное с ним действие:
registerShortcut(keyCode, actionCreatorFuncReference)
Затем редуктор обновит зарегистрированный объектShortcuts в магазине redux с отображением keyCodes в actionCreatorFuncReferences. Затем мой корневой компонент будет прослушивать клавиатуру и посмотреть, есть ли зарегистрированный ключевой код, и если да, то отправьте отображаемое действие с помощью ссылки на функцию создания действия.
Однако это будет первый раз, когда я храню ссылки на функции в моем хранилище Redux. На сегодняшний день у меня были только объекты с ключами с значениями ванили (строки, int и т.д.).
В документах Redux говорится: "Вы должны делать все возможное, чтобы сохранить сериализуемое состояние. Не помещайте в него ничего, что вы не можете легко превратить в JSON". Означает ли это, что это плохая идея хранить такие ссылки на функции в моем хранилище Redux? Если это так, то лучший способ выполнить то, что я пытаюсь сделать в React/Redux?
Альтернативный подход заключается только в том, чтобы хранить сопоставление ключевых кодов и ссылок на функции в самом корневом компоненте реакции, но это не очень напоминало Redux, поскольку теперь состояние приложения не находится в хранилище Redux.