Хорошо, приятель, так что я хочу поднять несколько вещей:
Во-первых, вы должны всегда использовать ваши редукторы, только возвращать новое состояние в Redux, и все. Вы просто объединяете новые данные, полученные в результате действий, со своим старым состоянием и возвращаете их обратно. И вы не можете использовать Promise
или async/await
там, потому что Redux не поддерживает и не будет поддерживать это поведение.
Во-вторых, все бизнес-логики c должны быть помещенным в ваши действия. Выбор данных (как в вашем случае), вычисления и тому подобное должны быть в действиях. И теперь вы подошли к тому моменту, когда вам, скорее всего, следует начать использовать библиотеки типа redux-thunk
или redux-saga
для обработки асинхронных операций в ваших действиях. redux-thunk
менее сложен, чем redux-saga
, но redux-saga
наделяет вас множеством интересных функций, но это может быть немного сложнее.
Вы можете go большой или начать с малого с этих библиотек, либо Кстати, они заставят вас переместить ваши данные в ваши действия. Если вы хотите поддерживать загрузку данных, просто отправьте действия, которые сообщают Redux
: «Я загружаю данные» или «Я получил ошибку при загрузке данных» или «Я загрузил данные». И когда это действие произойдет, обновите свой магазин, покажите загрузчик, данные или ошибку, если вам нужно. Вы можете взглянуть на этот или , который пример использования redux-thunk
для извлечения данных, есть все, что вам нужно, чтобы начать работу с асин c действиями.
Надеюсь, это поможет <3 </p>