类型错误:销毁不是 Reactjs 中的函数,而调用 api 异步函数时在使用效果钩子中



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();
}, []);