不能使用在動作取不中間件。操作必須是普通對象。您可以使用像redux-thunk或redux-saga這樣的中間件來執行提取操作,然後分派另一個操作。
以下是使用redux-thunk中間件的異步操作示例。
export function checkUserLoggedIn (authCode) {
let url = `${loginUrl}validate?auth_code=${authCode}`;
return dispatch => {
return fetch(url,{
method: 'GET',
headers: {
"Content-Type": "application/json"
}
}
)
.then((resp) => {
let json = resp.json();
if (resp.status >= 200 && resp.status < 300) {
return json;
} else {
return json.then(Promise.reject.bind(Promise));
}
})
.then(
json => {
if (json.result && (json.result.status === 'error')) {
dispatch(errorOccurred(json.result));
dispatch(logOut());
}
else{
dispatch(verified(json.result));
}
}
)
.catch((error) => {
dispatch(warningOccurred(error, url));
})
}
}
來源
2017-10-16 08:32:13
SNT
它像魅力一樣工作。謝謝 –