【发布时间】:2021-03-31 16:50:06
【问题描述】:
如何编写这些函数,以便在 if 语句开始之前完成分派?目前,if 语句在调度之前启动 console.log()'ing 甚至可以保存数据。
const doStuff = () => {
dispatch(getStuff()); // WAIT FOR ME TO COMPLETE BEFORE MOVING ON!!!
if (stuff) { //stuff is retreived from global state
console.log("stuff available") //I WAITED FOR THE DISPATCH!
}
if (!stuff) { //stuff is retreived from global state
console.log("no stuff") //I WAITED FOR THE DISPATCH!
}
};
export const getStuff = () => { \\WAIT FOR ME TO SAVE STUFF!!!
return (dispatch) => {
axios.get(`/stuff`).then((response) => {
dispatch({
type: SAVE_STUFF_TO_STATE, //stuff is saved to global state
payload: response.data, //stuff
});
})
} catch (err) {
console.log("stuff issue")
}
};
};
【问题讨论】:
-
东西是怎么“塞”起来的?
-
@MetallimaX 东西通过reducer保存到状态。
-
你如何检索状态?
-
@MetallimaX 使用 useSelector 从状态中检索东西。
-
你为什么不使用 useEffect 呢?
标签: javascript reactjs asynchronous redux async-await