Перехват действий в компонентах 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
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
8
191
0

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