![](/img/trans.png)
[英]TypeError: Cannot read property 'then' of undefined in react js
[英]TypeError: Cannot read property 'type' of undefined in react js
我正在使用巨型 4.1.1 模板。 我收到回復,但出現此錯誤。 我的代碼如下:authAction.js:
...
export const userSignIn = (user) => {
// const {email, password} = user;
console.log(user)
axios.post(base_url +'login', user)
.then(response=> {
console.log(response.data)
return {
type: SIGNIN_USER,
payload: user
};
})
};
但是當我運行該項目時,出現錯誤TypeError: Cannot read property 'type' of undefined
我相信那是因為你沒有正確地派遣行動。
你用的是thunk嗎?
如果您正在使用 Redux 並進行異步調用,您應該返回 dispatch。
const userSignup = (signupData) => {
return async (dispatch) => {
try {
let res = await axios.post(`${url}/user/`, { user: signupData });
dispatch({
type: "FETCH_CURRENT_USER_SUCCESS",
payload: res.data.user,
});
return true;
} catch (error) {
console.log(
"%c CATCH in userSignup ",
"background: red; color: #bada55",
error
);
}
};
};
請注意,我在第二行返回一個 function 作為參數的 dispatch 。 然后使用該dispatch
(第 4 行)來分派操作的類型和有效負載。
最后,我還從 function userSignUp 返回了一些東西,所以 function userSignUp
的調用者得到了一些響應。
如果您不明白以上任何內容,請告訴我。
您可以在此處使用 async + await 獲益。
例如:
export const userSignIn = async (user) => {
try {
// const {email, password} = user;
console.log(user);
const data = await axios.post(base_url +'login', user);
console.log(data);
return {
type: SIGNIN_USER,
payload: user,
};
} catch (error) {
console.log(error);
// return an error action...?
return {
type: ERROR,
payload: error,
};
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.