类型错误:在useEffect钩子中调用api异步函数时,destroy不是Reactjs中的函数

时间:2020-05-31 07:43:01

标签: reactjs react-hooks use-effect use-state


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


  },[]);

显示destroy不是函数,func.apply不是函数

1 个答案:

答案 0 :(得分:2)

效果挂钩回调 不能 是异步的。而是声明一个回调函数范围内的异步函数,然后调用它。此外,正如@StéphaneVeyret指出的那样,“异步”效果钩子回调隐式返回一个Promise,该承诺将被解释为效果钩子清理函数。它 不是 ,但会导致错误。

useEffect(() => {
  const asyncFetchDailyData = async () => {
    const fetchData = await fetchDailyData(); // fetchDailyData() is calling Api 
    setDailyData(fetchData);
    console.log(fetchData);
  }

  asyncFetchDailyData();
}, []);