Я хочу показать загрузчик, когда происходит аутентификация. У меня есть действие sendAuthCredentials
. На этом мероприятии я хочу сделать несколько действий: запрос аутентификацииМогу ли я отправить несколько событий по действию в поток?
- Показать погрузчик
- Отправить на сервер
- Ручки ответ и сообщить
UserStore
проверки подлинности пользователя или не - Скрыть Loader.
У меня есть Loader
реагировать компонент, LoaderStore
и LoaderAction
для работы с компонентом.
Так что мой sendAuthCredentials
метод выглядит следующим образом:
UserActions = {
/**
* @param {string} username
* @param {string} password
*/
sendAuthCredentials: function(username, password) {
return Q.all(
[
LoaderActions.showLoader(),
authenticateUser(username, password)
.then(function(data) {
if(data) {
AppDispatcher.handleViewAction({
type: ActionTypes.USER_LOGIN_SUCCESS,
data: data
});
return Q("succcess");
} else {
AppDispatcher.handleViewAction({
type: ActionTypes.USER_LOGIN_FAIL
});
return Q("failed");
}
})
]
).then(LoaderActions.hideLoader);
}
};
Это работает, но я не уверен, правильно ли это способ использовать действия в Flux.
Спасибо за ответ.
Благодарим за отзыв. Насколько я понимаю, вы отправляете асинхронные запросы в магазине. Я прав? Но, как я понимаю, также нормально отправлять запросы на действия. Также я хочу иметь компонент Loader, который я буду использовать несколько раз. аутентификация пользователя, публикация комментариев и т. д. Поэтому я инициализирую в потоках данных 2 действия: для обновления «UserStore» и для обновления «LoaderStore». Поэтому я не уверен, могу ли я сделать так или нет. – Zapix
Вы можете отправить асинхронный запрос в магазин, но я думаю, что его вообще немного красивее, чтобы сделать это в ActionDispatcher. Если вы хотите использовать компонент многоразового загрузчика, я думаю, вам нужны разные случаи, в зависимости от того, в какой области вы находитесь, или если вы можете подумать о событии, которое может быть запущено, и сообщить каждому загрузчику о завершении. Вы можете сделать это, как вы предлагаете, но я не уверен, что вам нужен собственный LoaderStore. Какую информацию вы должны хранить за пределами компонента Loader? Не забудьте использовать свойства и состояния в своих интересах. – magnudae
У меня есть статус загрузчика (отображение или нет) в LoaderStore. Я использую состояние для управления компонентом загрузчика. поэтому у меня есть действия: showLoader и hideLoader. LoaderStore испускает событие при изменении состояния загрузчика. Компонент загрузчика прослушивает события и показывает загрузчик или нет. Этот компонент выглядит неплохо, но я должен отправить действия showLoader/hideLoader из других действий. И я не уверен, правильно это или нет. – Zapix