gpt4 book ai didi

reactjs - 将 Async 函数放入 useEffect 后出现错误

转载 作者:行者123 更新时间:2023-12-03 13:25:40 25 4
gpt4 key购买 nike

在 useEffect 函数中,如果我只提及 getResults 函数变量,应用程序不会崩溃。但是当我像下面的代码中那样调用它时,我收到以下错误:

react-dom.development.js:21857 Uncaught TypeError: destroy is not afunction

Consider adding an error boundary to your tree to customize error handling behavior.

  function App() {
const [foods, setFoods] = useState([]);
const [isLoaded, setIsLoaded] = useState(false);
useEffect(() => getResponse());
const getResponse = async () => {
const response = await fetch(sampleRequest);
const data = await response.json();
setFoods(data.hits);
};
let query = "Tomato";
let sampleRequest = `https://api.edamam.com/search?q=${query}&app_id=${"1811484f"}&app_key=${"9cac93361efc99e2ebfbb8a453882af8"}`;

return (
<div className="App">
<div className="main">
<div className="navbars">
{" "}
<Navbars></Navbars>
</div>
<div className="listings">
<Listing></Listing>
<Listing></Listing>
<Listing></Listing>
<Listing></Listing>
<Listing></Listing>
<Listing></Listing>
<Listing></Listing>
<Listing></Listing>
<Listing></Listing>
<Listing></Listing>
</div>
<div className="footer">
<h5>Made By YoYo Strangler in 2019</h5>
</div>
</div>
</div>
);
}

export default App;

最佳答案

您将返回从 useEffect 函数调用 getResponse() 的结果。如果您从 useEffect 返回任何内容,它必须是一个函数。将代码更改为此应该可以解决问题,因为您不再从 useEffect 函数返回任何内容。

useEffect(() => { 
getResponse();
});
<小时/>

useEffect 清理函数

如果您从 useEffect Hook 函数返回任何内容,它必须是一个清理函数。该函数将在组件卸载时运行。这可以被认为大致相当于类组件中的 componentWillUnmount 生命周期方法。

useEffect(() => { 
doSomething();

return () => {
console.log("This will be logged on unmount");
}
});

关于reactjs - 将 Async 函数放入 useEffect 后出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58495238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com