Как и сказано в заголовке, мой редуктор возвращает обещание вместо обычного объекта. Я предполагаю, что это потому, что я использую redux-saga
для asyn c запросов, что вроде бы не имеет смысла. Есть ли способ, чтобы мой редуктор вместо этого возвращал разрешенный объект?
// reducer.tsx
...
const initialState = {
token: '',
error: null,
loading: false
};
const authenticationReducer = async (state = initialState, action) => {
switch (action.type) {
case EMAIL_LOGIN: {
console.log('action.payload: ', action.payload);
const {token} = action.payload;
return {
...state,
token
};
}
...
// saga.tsx
function* emailLogin({type, payload}) {
try {
const {email, password} = payload;
const loginUserInfo = {
email,
password,
};
const response = yield call(axios, `${USER_ADDRESS}/login/`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
data: loginUserInfo,
});
yield put(setLoginStatus(response));
} catch (e) {}
}
Но по какой-то причине оба useSelector()
и useStore()
указывают на то, что мой редуктор возвращает обещание
// Login.tsx
...
const token = useSelector(state =>{ console.log(state)}) // {authentication: Promise}
const state = useStore().getState();
console.log(state) // {authenitcation: Promise}
...
Пожалуйста, помогите!