В Flux, как вернуть асинхронные ошибки (например, xhr) обратно в мои компоненты представления?

Данные приложения хранятся в хранилищах
Состояние приложения (UI) хранится в хранилищах (хотя существуют разные мнения)

Теперь, когда пользователь отправляет форму, а сервер возвращает ошибку проверки, как я могу вернуть эту ошибку компоненту представления (форме)? Поскольку компоненты представления (контроллера) обновляются только событиями изменения из хранилища (хранилищ), ошибку необходимо добавить в хранилище. Другие люди говорят, что в этих случаях компоненты представления должны иметь возможность прослушивать события от создателей действий.

Каково ваше мнение по этому поводу?


person Aron Woost    schedule 14.04.2015    source источник


Ответы (1)


Возможно, дубликат Как обрабатывать асинхронные ошибки в Flux?

В случае, когда ошибка на самом деле не имеет значения для остальной части приложения и вам не нужно ее регистрировать, я бы просто вернул значение прямо в компонент. Например, скажем, вы отправляете форму, и она возвращает 422 или что-то в этом роде... если вы не хотите что-то сделать с ошибкой, например, сохранить ее, и ни один из других компонентов не заботится об ошибках, не беспокойтесь об этом. это... просто обновите состояние компонента просмотра.

Хотя, вообще говоря, лучше всего иметь состояние в самом верху компонента, для некоторых компонентов (таких как формы) имеет смысл иметь «временное» состояние, которое имеет значение только для них... например, когда вы вводите текст в обычно нет причин поднимать это до компонента верхнего уровня.

person SleepyProgrammer    schedule 14.04.2015
comment
Как действие должно вернуться к компоненту? Действие не знает о компоненте... - person Aron Woost; 14.04.2015
comment
Цзин Чен комментирует, как это сделать через магазин: groups.google.com /forum/#!topic/reactjs/yAefvkC62Ts В моем случае я просто отправил данные + обещание своему создателю действия API через метод отправки моей формы, а затем выполнил некоторый код для установки локального состояние, когда внешнее обещание разрешается вызовом API. - person SleepyProgrammer; 14.04.2015