我从api获取json,但以前没有转换为数组,但我得到了值,但是从这段代码中我没有得到值
这是我的代码:
componentWillMount() {
let initialFilename;
fetch('http://localhost/Generator/FetchfileDetails.php')
.then(response=>{
return response.json();
}).then(data=>{
alert(data.filename);
});
}
我的json中的关键值是文件名要存储在数组中怎么办?
答案 0 :(得分:1)
请记住,不要使用componentWillMount()方法来获取数据。
参考:https://reactjs.org/docs/faq-ajax.html#how-can-i-make-an-ajax-call
使用以下内容,
componentDidMount(){
fetch("http://localhost/Generator/FetchfileDetails.php")
.then(res=> res.json())
.then(data=>{ //here you can set data to state })
}
答案 1 :(得分:1)
我建议您使用axios软件包获取GET数据,它非常易于使用。.
axios.get('API').then(response=>{console.log(response)})
您可以将此代码插入componentDidMount函数
如果您想查看完整的文档axios,This Link
答案 2 :(得分:0)
您可以尝试代替response.json()进行操作:
fetch("http://localhost/Generator/FetchfileDetails.php") .then(response=>{ return JSON.parse(response) }).then(data=>{ alert(data);})
另外,如果您说响应应该是数组,则不能使用data.filename,而必须执行data ['filename'],data.filename用于对象响应