我正在学习使用redux。我已经了解了动作的概念,它浮现在我身上。
我使用redux-saga,并向我的api请求。我想这样做,以便无论我的请求(令牌jwt)返回什么,它都保存到localStorage中。
export function* login() {
// Select username from store
const login = yield select(makeIdSelector());
const password = yield select(makePasswordSelector());
const requestURL = `/api/users/login`;
try {
// Call our request helper (see 'utils/request')
const response = yield call(request, requestURL, {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
login,
password,
}),
});
response.success
? (yield put(successPasswordAction()), yield put(successLoginAction()))
: yield put(
errorPasswordAction(<FormattedMessage {...messages.passwordError} />),
);
} catch (err) {
yield put(errorIdAction(<FormattedMessage {...messages.serverError} />));
}
}
我应该在哪里写呢?我的想法告诉我,在successLoginAction()
中,但是只有:
export function successLoginAction() {
return {
type: LOGIN_SUCCESSFUL,
};
}
而我的减速机仅更改商店状态。