Ich versuche Tastaturkürzel Unterstützung in meine React/Redux App in einem idiomatischen React/Redux Weg zu bauen. Die Art, wie ich dies zu tun bin die Planung ist die folgende Aktion Schöpfer zu haben und damit verbundene Aktion:Soll ich Funktionsreferenzen in Redux speichern?
registerShortcut(keyCode, actionCreatorFuncReference)
Das Reduktionsmittel würde dann mit einer Abbildung von keycodes zu actionCreatorFuncReferences ein registeredShortcuts Objekt im redux Speicher aktualisieren. Dann würde meine Root-Komponente auf keyup warten und sehen, ob ein zugehöriger keyCode registriert ist, und wenn dies der Fall ist, dann verschicke die zugeordnete Aktion über die Aktion creator function reference.
Allerdings wäre dies das erste Mal, dass ich bin Speichern von Funktionsreferenzen in meinem Redux-Shop. Bisher hatte ich nur Objekte mit Schlüsseln mit Vanilla-Werten (Strings, Ints, etc).
Die Redux Dokumentation sagt: "Sie sollten Ihr Bestes tun, um den Status serialisierbar zu halten. Legen Sie nichts hinein, was Sie nicht einfach in JSON verwandeln können." Schlägt dies vor, dass es eine schlechte Idee ist, solche Funktionsreferenzen in meinem Redux Store zu speichern? Wenn ja, was ist ein besserer Weg, um das zu erreichen, was ich in React/Redux zu tun versuche? Ein alternativer Ansatz besteht lediglich darin, das Mapping von keyCodes und Funktionsreferenzen in der root-react-Komponente selbst zu speichern, was sich jedoch nicht sehr Redux-ähnlich anfühlt, da sich der Anwendungszustand nicht im Redux-Speicher befindet.
Ich habe mich irgendwie über so etwas selbst gewundert. Während der Redux-Status definitiv serialisierbar sein muss, gibt es andere Dinge, die Sie vielleicht zeitweise behalten möchten (Versprechen, usw.). Ich habe diese Frage in https://github.com/rackt/redux/issues/1385 aufgeworfen - wir werden sehen, ob etwas passiert. – markerikson