Redux Dev Tools: ответ на импорт state.json в пользовательском интерфейсе приложения

Меня интересует функция импорта Redux Dev Tools. Исправьте мою логику, если она неисправна.

Я работаю над многошаговым пользовательским интерфейсом приложения, насыщенного формой, который сериализует его состояние в Redux. Неэффективно пытаться воспроизвести ошибки, просматривая приложение и заполняя / проверяя каждое поле каждый раз. Я обнаружил функции экспорта и импорта Redux Dev Tools (RDT) и экспортировал состояние поздно, заполняя и проверяя форму.

Я заново запустил приложение, перешел непосредственно к URL (он находится в dev окружение, поэтому нет проверки подлинности), и импортировал файл state.json.

Поскольку пользовательский интерфейс не получает свое состояние из Redux, а сохраняет свое состояние в Redux, пользовательский интерфейс, как и ожидалось, не обновляется при импорте файла state.json. Этот вопрос касается ответа на это единственное синхронное действие по импорту файла state.json.

Я провел некоторое исследование и нашел пакет, от которого зависит RDT, называемый https://github.com/zalmoxisus/redux-devtools-instrument/. Он использует Redux внутри, и имеет действие / редуктор для IMPORT_STATE, Даже при явном добавлении этого пакета к моим собственным зависимостям я не могу понять, как подписаться на это событие и повторно создать мой пользовательский интерфейс. Итак, вот две части моего вопроса:

  1. Должна ли функция импорта RDT работать так, как я описываю?

  2. Как бы вы поступили, чтобы получить "тупой" пользовательский интерфейс, который не имеет понятия Redux, или даже вообще вообще о состоянии, "прослушивать" это действие файла состояния импорта? Я пытался использовать RxJS, но не знал, на что подписаться.

1 ответ

Похоже, что блокировщик в том, что, как вы сказали, "пользовательский интерфейс не получает свое состояние из Redux, а скорее сохраняет свое состояние в Redux". Если это так, то импорт обновленного состояния в хранилище Redux будет бессмысленным с точки зрения обновления пользовательского интерфейса.

В общем, если вы используете свой пользовательский интерфейс, не поддерживающий Redux, чтобы реагировать на изменения в состоянии хранилища Redux или отправленные действия, вам нужно будет использовать store.subscribe() или промежуточное программное обеспечение Redux для запуска изменений в остальной части вашего пользовательского интерфейса после отправки действия.

Другие вопросы по тегам