Я получил состояние, вложенное в состояние, и он имеет много отображенных состояний.
Вы видите из моей фотографии ниже.
Вот мой LoginReducer
import {
LOGIN_SUCCESS,
LOGIN_FAIL,
USER_LOADED,
AUTH_ERROR
} from '../actions/typeName';
const initialState = {
token: localStorage.getItem('token'),
isAuthenticated: null,
loading: true,
user: null
}
const loginReducer = (state = initialState, action) => {
const {
type,
payload
} = action;
switch (type) {
case USER_LOADED:
return {
...state,
isAuthenticated: true,
loading: true,
user: payload
};
case LOGIN_SUCCESS:
localStorage.setItem('token', payload.token)
return {
...state,
isAuthenticated: true,
loading: false
}
case AUTH_ERROR:
case LOGIN_FAIL:
localStorage.removeItem('token')
return {
...state,
token: null,
isAuthenticated: false,
loading: true
}
default:
return {
state
}
}
}
export default loginReducer;
А вот и мое действие.
export const LoginAction = (email, password) => async dispatch => {
const config = {
headers: {
'Content-Type': 'application/json'
}
}
const body = JSON.stringify({email, password});
try {
const res = await axios.post('/api/admin/login', body, config);
dispatch({
type: LOGIN_SUCCESS,
payload: res.data
});
dispatch(loadUser());
}catch(err){
const errors = err.response.data.errors;
dispatch({
type: LOGIN_FAIL,
});
if(errors) {
errors.forEach(error => {
dispatch(NotificationAction(error.msg, 'error'));
})
}
}
}
Если это не нормально и как предотвратить это? Огромное спасибо.