行为:加载完成后,即使有数据,空结果也会出现一瞬间。
预期行为:加载后应显示内容,不应出现空结果。
我可以强制setData比setLoading更快地更新状态吗?或者有什么方法可以解决这个问题吗?
export const SomePage = () => {
const [Data, setData] = useState<Data>();
const [Loading, setLoading] = useState<boolean>(false);
const getData = useCallback(async () => {
setLoading(true);
try{
//getting data...
const dataRes = await sendGetDataRes(something);
setData(dataRes);
} catch(err){
//catching error...
} finally{
setLoading(false);
}
}
useEffect(() => {
getData();
},[getData]);
if(Loading){
return <div>Loading...</div>
}
if(!Data){
return <div>Empty Result!</div>
}
return{
<div>some content...</div>
}
}
1条答案
按热度按时间wswtfjt71#
首先,应将Loader设置为初始值
true
。下面是一个工作示例: