Reactjs 获取Axios响应数据
我一直在尝试进行api调用,并将数据作为数组接收回来,以迭代数组并填充react组件。问题是我只收到了回复的承诺,因此react不会让我使用map函数。我是新的反应和有困难的理解问题 我正在按如下方式拨打axios电话:Reactjs 获取Axios响应数据,reactjs,promise,axios,Reactjs,Promise,Axios,我一直在尝试进行api调用,并将数据作为数组接收回来,以迭代数组并填充react组件。问题是我只收到了回复的承诺,因此react不会让我使用map函数。我是新的反应和有困难的理解问题 我正在按如下方式拨打axios电话: const makeRequest = async (url) => { return await axios.get(url).then(response => response.data); } 然后尝试将数组响应保存在要迭代的变量中 let data=m
const makeRequest = async (url) => {
return await axios.get(url).then(response => response.data);
}
然后尝试将数组响应保存在要迭代的变量中
let data=makeRequest(“someUrl”)代码>
如果我在请求中有一个console.log()
调用,我可以得到数组,但只要我尝试将它保存到变量中,我就只能得到承诺。任何帮助都会很好谢谢你 您需要使用状态变量来处理异步数据
在组件中,您可以从状态变量迭代数组,因此,一旦数据准备就绪,您可以更新状态变量,组件将自动重新渲染
import React,{useffect,useState}来自“React”;
从“axios”导入axios;
函数DisplayData(){
//将数据状态变量初始化为空数组
const[data,setData]=useState([]);
//在组件第一次装载时进行提取
useffect(()=>{
get(url).then(response=>setData(response.data));
}, []);
返回(
{data.map((行)=>(
{row.content}
))}
);
}
请参考以下示例,这可能有用:
//api.js
从“axios”导入axios;
导出默认的axios.create({
baseURL:`xyz`
});
//个人主义者
从“React”导入React;
从“axios”导入axios;
导出默认类PersonList扩展React.Component{
状态={
id:“”,
}
handleChange=事件=>{
this.setState({id:event.target.value});
}
handleSubmit=异步事件=>{
event.preventDefault();
const response=await API.get(`xyz`);
控制台日志(响应);
console.log(response.data);
}
render(){
返回(
个人识别码:
删除
)
}
}
非常感谢!这解决了我的问题,没有不断的重新渲染,真的很感激it@BrandonGullion在react的最新版本中,从useEffect返回承诺将抛出一个错误,我已经更新了我的答案以反映这一点