我想在登录后立即注销用户,所以我可以在redux中看到它是否有效并且我收到此错误:未捕获错误:操作可能没有未定义的“类型”属性。你拼错了吗?
成功后我应该在我的redux中获得AUTH_LOGOUT动作 - example image。 据我所知,checkAuthTimeout中的错误是:
export const checkAuthTimeout = (expirationTime) => {
return dispatch => {
setTimeout(() => {
dispatch(logout())
}, expirationTime )
}}
我的退出:
export const logout = () => {
return {
type: actionTypes.AUTH_LOGOUT
}}
并且认证:
export const auth = (email, password) => {
return dispatch => {
dispatch(authStart());
const authData = {
email:email,
password:password,
returnSecureToken: true
}
axios.post('https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=AIzaSyCpqBy-KjAJWCMUYLHVWAIu_HWZd3yzHVE', authData)
.then(response => {
console.log(response);
dispatch(authSuccess(response.data.idToken, response.data.localId));
dispatch(checkAuthTimeout(response.data.expiresIn));
})
.catch(err => {
dispatch(authFail(err.response.data.error));
});
}}
答案 0 :(得分:0)
错误本身非常清楚,您的操作类型的值为undefined。含义actionTypes.AUTH_LOGOUT未定义。
尝试在actionTypes.AUTH_LOGOUT上执行console.log,可能未定义或未正确导入。向我们展示定义和导入它的文件,但我很肯定,问题在于您如何导出或导入它。