const [dailyData, setDailyData] = useState([]);
useEffect(async () => {
const fetchData = await fetchDailyData(); // fetchDailyData() is calling Api
setDailyData(fetchData);
console.log(fetchData); //fetchData print the value but dailyData not updating
},[]);
显示销毁不是一个函数,func.apply 不是一个函数
效果钩子回调不能是异步的。相反,声明一个回调函数作用域的异步函数,然后调用它。此外,正如@StéphaneVeyret所指出的那样,您的"异步"效果钩子回调隐式返回一个 Promise,该 Promise 被解释为效果钩子清理函数。它不是一个,并导致错误。
useEffect(() => {
const asyncFetchDailyData = async () => {
const fetchData = await fetchDailyData(); // fetchDailyData() is calling Api
setDailyData(fetchData);
console.log(fetchData);
}
asyncFetchDailyData();
}, []);
useEffect(async () => {
//在这一部分中,异步是错误的
取而代之的是,您可以在useEffect中创建函数异步
useEffect(() => {
const asyncFetchDailyData = async () => {
...
}
asyncFetchDailyData();
}, []);