我有一個簡單的功能來註銷(僅用於測試),並且我想在操作完成時通知用戶。首先想到的是用承諾來做到這一點。Redux返回承諾
我這樣試過,但是有些問題。我不太瞭解這些工作。我能夠這樣做嗎?還是會有更好的方法?
功能
logOut =() => {
this.props.logoutUser().then((passed) => {
if (passed) {
alert("You are now logged out!");
}
});
};
註銷行動
export function logoutUser() {
return dispatch => {
new Promise(function (resolve, reject) {
dispatch(logout()).then((response) => {
return true;
}).catch((error) => {
return false;
});
});
}
}
function logout() {
return {
type: "LOGOUT"
}
}
你的方法是正確的。確保你使用的是「thunk」中間件,並且你的thunk返回Promise。 –
我應該有thunk工作,因爲我將其與包含「fetch」的其他操作一起使用。這一次我想不使用'fetch'來使用它:) –
雖然這是同樣的方法,因爲'fetch'也返回一個Promise。如果你的thunk會返回Promise,你可以在組件中使用它('return new Promise ...')。 –