react函数式组件 async await运用
时间: 2024-01-26 11:14:34 浏览: 252
在React函数式组件中使用async/await可以通过自定义的异步函数来实现。下面是一个示例:
```javascript
import React, { useState, useEffect } from 'react';
const MyComponent = () => {
const [data, setData] = useState(null);
useEffect(() => {
const fetchData = async () => {
try {
const response = await fetch('https://api.example.com/data');
const jsonData = await response.json();
setData(jsonData);
} catch (error) {
console.error('Error fetching data:', error);
}
};
fetchData();
}, []);
return (
<div>
{data ? (
<ul>
{data.map((item) => (
<li key={item.id}>{item.name}</li>
))}
</ul>
) : (
<p>Loading data...</p>
)}
</div>
);
};
export default MyComponent;
```
在上面的示例中,我们使用了React的`useState`和`useEffect`钩子来管理组件的状态和副作用。在`useEffect`中定义了一个异步函数`fetchData`,它使用了`async/await`来处理异步操作。在函数体内部,我们使用`fetch`函数发送一个GET请求,并使用`await`等待响应的结果。然后,我们将响应的JSON数据存储在组件的状态中,以便在渲染时使用。
请注意,我们在`useEffect`的依赖项数组中传递了一个空数组`[]`,这意味着`fetchData`只会在组件第一次渲染时执行一次。这是因为我们只想在组件挂载时获取数据一次,而不是在每次重新渲染时都执行。
阅读全文