我调用 api 的代码是:
import React from 'react';
import ReactDOM from 'react-dom';
import axios from 'axios';
class Hello extends React.Component{
constructor(props){
super(props);
this.state={
data: "good"
}
this.setdata=this.setdata.bind(this);
}
setdata(){
return axios.get("http://52.14.161.145/1").
then(res=>{
return res.json;
});
}
componentDidMount(){
this.setdata().then(res=>{console.log(res);this.setState({data: res})});
}
render(){
return (<div><p>{this.state.data}</p></div>);
}
}
export default Hello;
我还了解 axios 和 fetch api 调用的反应方法生命周期和异步性质。我能够在 chrome 的网络选项卡中看到响应,但setdata
总是返回未定义。另请注意,我正在捆绑 react 代码并通过 express 服务器为其提供服务。
我该如何解决这个问题?
最好将您的状态设置为您得到响应的位置。
这不是fetch
call , inaxios
res.json
不是必需的。
你会得到你的数据 res.data
setdata(){
axios.get("http://52.14.161.145/1").
then(res=>{
console.log(res.data);
this.setState({data: res.data})
});
}
componentDidMount(){
this.setdata();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句