Перехват действий в компонентах react

У меня есть приложение React, использующее Redux.

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

Как и следовало ожидать, я хочу обновить эти результаты с сервера на основе новых данных. Расчеты довольно сложны, поэтому повторение расчета в пользовательском интерфейсе не вариант.

Существует метод loadConstituents(), который вызывается componentWillMount(), когда пользователь попадает на страницу. Мне в основном нужно вызвать этот метод снова, как только сервер подтвердит пользователю, что данные были получены (с помощью действия SAVE_SUCCESS).

Как я могу перехватить действие в моем компоненте?

В качестве альтернативы, есть ли лучший способ достижения этого?

Лучшее, что я мог придумать, - это передать функцию loadConstituents() в модальное окно, которое передаст ее вызову, который выполнит ее после завершения вызова, но передача функции через такое количество классов, как параметр, кажется очень хакерским.

вам может понадобиться промежуточное ПО, такое как redux-saga

oosniss 13.09.2018 19:58

Примечание: согласитесь с @oosniss, вам понадобится промежуточное ПО (thunk, saga и т. д.). Также выполните асинхронные вызовы в componentDidMount (). Дайте мне знать, если вам понадобится помощь с thunk.

Shivam Gupta 13.09.2018 20:04

Если вы хотите использовать redux-thunk, как прокомментировали два других. Вот хороший ответ: stackoverflow.com/a/35073808/10301134

Cody S 13.09.2018 20:06

Используйте thunk. Просто добавьте с помощью npm i --save redux-thunk и примените его как промежуточное ПО, которое будет «перехватывать» ваши действия при отправке, а затем

Dupocas 13.09.2018 20:47

@Dupocas npm теперь сохраняет автоматически, кстати

azium 13.09.2018 21:02

Не знаю, почему люди не используют сагу. Это намного мощнее, чем thunk

sultan aslam 13.09.2018 21:05

по привычке xD

Dupocas 13.09.2018 21:21

Не знаю, почему люди не водят танки. Они намного мощнее автомобилей.

lecstor 14.09.2018 10:38
1
8
191
0

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