在异步获取的数据时,使用useState,set值时不会更新,导致报错
const [shopInformation, setShopInformation] = useState([]); //商铺信息
useEffect(() => {
getShopInformation();
}, [projectCode]);
useEffect(() => {
// 这个useEffect很关键,第一次赋值但是获取不到,所以要再赋值一次
if (shopInformation) {
setShopInformation(shopInformation);
}
}, [shopInformation]);
const getShopInformation = async () => {
let data = await api.selectByPageRecordShop({
pageSize,
pageNumber,
projectCode: projectCode,
});
if (data.code == '1') {
// 第一次虽然在这里赋值了,但是外部想拿到 shopInformation这个变量还是空的
setShopInformation(data.data.rows[0]);
}
};