当使用axios发送请求时,我们可以通过使用React的useState和useEffect钩子来自动更新React状态。
首先,安装axios依赖:
npm install axios
接下来,我们创建一个名为ExampleComponent的React组件。在这个组件中,我们将使用axios发送一个GET请求并将返回的数据保存到React状态中。
import React, { useState, useEffect } from 'react';
import axios from 'axios';
const ExampleComponent = () => {
const [data, setData] = useState(null);
useEffect(() => {
axios.get('https://api.example.com/data')
.then(response => {
setData(response.data);
})
.catch(error => {
console.log(error);
});
}, []); // 注意空数组作为第二个参数,表示只在组件挂载时发送请求一次
return (
{data ? (
data.map(item => (
{item.title}
))
) : (
Loading...
)}
);
};
export default ExampleComponent;
在上面的代码中,我们首先使用useState钩子来创建一个名为data的状态变量,并初始化为null。然后,我们使用useEffect钩子来发送GET请求并将返回的数据保存到data状态中。在返回的JSX中,我们根据data状态的值显示数据列表或显示"Loading..."文本。
当组件首次挂载时,useEffect的回调函数将被执行,并发送GET请求。当请求成功完成时,我们通过调用setData来更新data状态,并在返回的JSX中显示数据列表。如果请求失败,我们将错误信息打印到控制台。
这样,当axios请求完成时,React状态将自动更新,并触发组件重新渲染以显示最新的数据。