Есть ли в redux saga
способ отправить действие из функции, вызываемой эффектом call
, в глобальное хранилище?
например:
export function* login({ payload }) {
try {
// from API.post I want to be able to dispatch an action that I will handle in a different saga.
const resp = yield call(API.post, 'api/1/login', {
email: payload.email,
password: payload.password,
});
yield put(AuthActions.loginSuccess(resp.token));
} catch (error) {
yield put(AuthActions.loginError(error));
}
}
Я знаю, что могу использовать сагу channel
, но если я передаю канал в API.post
, я должен использовать take(channel)
, и я хочу обработать это действие в другом файле, чтобы у меня не было доступа к этому каналу. И я также не уверен, что хочу экспортировать канал и импортировать его в другой файл, потому что я хочу, чтобы каждая сага была независимой.
Что я могу сделать?