Ответ 1
Вы можете абсолютно отправлять вызовы AJAX непосредственно из компонентов!
Redux - это инструмент для общего доступа к глобальному доступу к нескольким компонентам и изменен в предсказуемом виде. В любом случае, когда вы не найдете это необходимым, не делайте этого.
Сохранение вызовов AJAX в создателях действия удобно, когда разные компоненты выполняют одни и те же запросы API, а затем изменяют состояние аналогичным образом. Это также удобно, если вы хотите избежать обхода запроса, когда уже есть некоторые данные в кэше, и вы хотите сохранить такие проверки в одном месте, а не разбросаны по компонентам.
Тем не менее Redux занимается только тем, как обновляется глобальное состояние, и если вам просто нужно сделать запрос AJAX от какого-либо компонента, вам не нужно писать создатель действия или редуктор для него, если вы не найдете его удобным.
Вообще говоря, Redux (и Flux) - это то, что вы могли бы подумать о реорганизации своего кода, когда у вас много сложных компонентов; не то, с чем вам следует начинать каждый компонент. Вы можете использовать только те части, которые вам нужны (например, только синхронные вещи), или даже вообще избегать их в некоторых случаях (например, складная панель не должна сохранять свое состояние в магазине). Используйте его только тогда, когда вы понимаете конкретные преимущества, которые он дает вам в конкретной ситуации, никогда "на всякий случай" или потому, что он популярен.
См. также мой ответ на "Как отправить действие Redux с таймаутом?"
Чтобы обратиться к вашему конкретному примеру, вы можете использовать Redux для этого, если используете преимущества Redux: возможно, вы отправите действие, чтобы оптимизировать форму и отобразить новый список сразу, и объединить его с извлеченным когда он доступен, чтобы взаимодействие стало мгновенным. Это прецедент для создателей асинхронных действий. Если вы не смотрите на такую сложность UX, я не уверен, что Redux необходим вообще.