我需要在setState完成后解决承诺,但在反应挂钩中setState(useState)没有回调函数。
此代码的反钩版本:
handleBeforeGetContent = () => {
return new Promise((resolve, reject) => {
this.setState({ key: 'updatedValue' }, () => resolve());
});
}
答案 0 :(得分:2)
您可以使用useEffect来运行每个状态更改,而绕过要观察的所需状态作为useEffect中的参数。
(default(double?)
答案 1 :(得分:2)
您可以在useEffect内使用异步函数,如下所示。
const [isLoadingComplete, setLoadingComplete] = React.useState(false);
React.useEffect(() => {
async function loadDataAsync() {
try {
await loadAsyncSomething();
} catch (e) {
console.warn(e);
} finally {
setLoadingComplete(true);
}
}
loadDataAsync();
}, []);