Как обновить объект зависимого состояния Redux в дереве? - PullRequest
1 голос
/ 12 октября 2019

Я новичок в Redux и работаю над одним приложением React - Redux. В какой-то момент у меня возникла проблема с тем, как обновить объект зависимого состояния Redux в другой ветви дерева. У меня есть одно свойство Thumbnail и один Process. Я получаю данные «Миниатюра» и «Обработка» с помощью двух разных вызовов API. Я использую mapDispatchToProps для извлечения данных и использования Action и Reducer. Я сохраняю оба свойства объекта в дереве состояний. Мне нужно отфильтровать процесс из Thumbnail и получить Thumbnail на основе результата фильтра, и мне нужно сохранить еще один объект currentThumbnail в дереве хранилища. выборка и сохранение объектов Thumbnail и Process в состояние работают хорошо, так как currentThumbnail можно получить только после фильтрации Thumbnail and Process, currentThumbnail всегда остается пустым. Не будет никакого нажатия кнопки или другого действия по взаимодействию с пользователем для currentThumbnail, оно должно быть установлено асинхронно завершенным после завершения миниатюры и обработки в хранилище. Я попытался поместить действия для хранения Thumbnail, Process и currentThumbnail в componentdidmount (), но Thumbnail и Process заполняются, но currentThumbnail остается пустым все время. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 12 октября 2019

Вы можете создать действие setCurrentThumbnail и отправить его внутри componentDidUpdate. Не уверен, что это наиболее элегантное решение, потому что оператор if внутри componentDidUpdate будет сложным и подверженным ошибкам. Вы должны проверить, что и Миниатюра, и Процесс успешно извлечены, а затем выполнить вычисления и устранить ошибки.

Редактировать:

Чтобы проверить, успешно ли выполнен запрос, вы можете поместить поля isFetching и failed в свой магазин.

Если вы используете создатель действий, как описано здесьhttps://blog.isquaredsoftware.com/2016/10/idiomatic-redux-why-use-action-creators/. Вы можете отправлять такие события, как REQUEST_STARTED, REQUEST_SUCCEEDED, REQUEST_FAILED, чтобы легко манипулировать isFetching и failed.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...