如何在useEffect中使用async/await?
在React中,可以在useEffect钩子中使用async/await。但是需要注意以下几点:
-
useEffect的回调函数必须是一个纯函数,不能直接使用async/await语法。因此,需要在回调函数内部定义一个异步函数,并在函数内部使用async/await语法。
-
useEffect的回调函数必须返回一个清除函数或者undefined。如果使用了异步函数,需要在异步函数内部返回一个清除函数或undefined。
下面是一个在useEffect中使用async/await的例子:
import React, { useState, useEffect } from 'react';
function App() {
const [data, setData] = useState([]);
useEffect(() => {
async function fetchData() {
const response = await fetch('https://jsonplaceholder.typicode.com/todos');
const json = await response.json();
setData(json);
}
fetchData();
}, []);
return (
<ul>
{data.map(item => (
<li key={item.id}>{item.title}</li>
))}
</ul>
);
}
export default App;
在这个例子中,我们在useEffect回调函数内部定义了一个异步函数fetchData,并在函数内部使用了async/await语法来获取数据。最后,我们将获取到的数据存储在state中,并在组件中渲染出来。