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 }); }