1.在create-react-app创建的react项目中使用axios,通过本地json数据 模拟前后台交互,所遇到的问题以及解决方法:
将json文件放在mock文件夹下,mock放在跟目录下,通过axios请求,报错404,找不到文件,原因是自动打包工具没有额外构建除了src目录外的文件,
可以将mock文件夹放在public目录下;
同时,因为是请求的本地数据,使用post请求时报错。
2.在componentDidMount中使用axios请求时,成功回调函数中直接使用this.setState()设置数据,不会起作用----》this 未定义,可以先将this保存:
componentDidMount(){
let ts = this;
axios.get("mock/person.json")
.then(function(response){
if(0 === response.data.errorCode){
ts.getData(response.data.persons);
}
}).catch(function(err){
console.log(err);
});
}
getData(persons){
this.setState({
dataSource: persons
});
}