Я пытаюсь проверить ссылку для входа в систему и выхода из системы на своей странице, но всякий раз, когда я пытаюсь сделать window.dispatch(signup(user))
, я получаю это сообщение об ошибке:
redux-logger.js:1 Uncaught Error: Actions may not have an undefined "type" property. Have you misspelled a constant?
Я дважды проверил свои действия, и это выглядит хорошо для меня:
export const RECEIVE_CURRENT_USER = 'RECEIVE_CURRENT_USER';
export const LOGOUT_CURRENT_USER = 'LOGOUT_CURRENT_USER';
export const RECEIVE_SESSION_ERRORS = 'RECEIVE_SESSION_ERRORS';
export const receiveCurrentUser = user => ({
type: RECEIVE_CURRENT_USER,
user
});
export const logoutCurrentUser = () => ({
type: LOGOUT_CURRENT_USER,
});
export const receiveSessionErrors = errors => ({
type: RECEIVE_SESSION_ERRORS,
errors
});
export const login = user => dispatch => (
APIUtil.login(user).then(user => dispatch(receiveCurrentUser(user)))
);
export const logout = () => dispatch => (
APIUtil.logout().then(() => dispatch(logoutCurrentUser())),
err => dispatch(receiveSessionErrors(err.responseJSON))
);
export const signup = user => dispatch => (
APIUtil.signup(user).then(user => dispatch(receiveCurrentUser(user))),
err => dispatch(receiveSessionErrors(err.responseJSON))
);
Я также проверил мои редукторы для регистрации, и я считаю, что я импортирую действия правильно:
import {RECEIVE_CURRENT_USER, LOGOUT_CURRENT_USER} from '../actions/session_action';
const _nullUser = Object.freeze({
id: null
});
const sessionReducer = (state = _nullUser, action) => {
Object.freeze(state);
switch (action.type) {
case RECEIVE_CURRENT_USER:
return {id: action.currentUser.id};
case LOGOUT_CURRENT_USER:
return _nullUser;
default:
return state;
}
}
export default sessionReducer;
Любая идея как почему эта ошибка появляется или откуда она может появиться?
ОБНОВЛЕНИЕ : Кажется, что регистрация пользователя прошла, и пользователь действительно находится в моей базе данных, несмотря на сообщение об ошибке , Но когда я выполняю getState()
на консоли, созданный мной пользователь не появляется в состоянии.
Вот более подробное изображение сообщения об ошибке: