Axios在react js中获取请求时出错
Posted
技术标签:
【中文标题】Axios在react js中获取请求时出错【英文标题】:Axios giving error on get request in react js 【发布时间】:2020-04-27 18:58:25 【问题描述】:我一直在尝试使用 axios get request 从 api 获取数据,但它一直给我错误。错误是 TypeError: this.setstate is not a function 我见过多个关于它的查询,几乎所有人都这样做了,但我不知道我做错了什么。
我的 axios 代码获取
import React, Component, Fragment from 'react';
import axios from 'axios'
class Questionare extends Component
constructor(props)
super(props);
this.state =
items: [],
componentDidMount()
axios.get('http://leaty-dev.azurewebsites.net/api/services/app/PersonalityQuestionerCategory/GetAllPersonalityQuestionerCategory')
.then(response =>
console.log(response);
this.setstate(items: response.data)
)
.catch(error =>
console.log(error);
);
render()
return (
<ul>
this.state.items.map(item=>(
<li>item.pqcDetail</li>
))
</ul>
)
export default Questionare;
【问题讨论】:
我建议通过response.json()
将响应转换为json
我的错误已得到纠正,这是驼峰式错误,但我还有另一个错误 TypeError: this.state.items.map is not a function
【参考方案1】:
这是骆驼案setState()
不是setstate()
修正
this.setState(items: response.data)
改进的完整代码---直播https://74u3w.csb.app/
import React, Component from "react";
import ReactDOM from "react-dom";
import axios from "axios";
class Questionare extends Component
state =
items: []
;
componentDidMount()
axios
.get(
"https://cors-anywhere.herokuapp.com/http://leaty-dev.azurewebsites.net/api/services/app/PersonalityQuestionerCategory/GetAllPersonalityQuestionerCategory"
)
.then(response =>
this.setState( items: response.data.result.items );
)
.catch(error =>
console.log(error);
);
render()
const items = this.state;
return (
<ul>
items.map(item => (
<li>item.pqcDetail</li>
))
</ul>
);
【讨论】:
非常感谢它成功了,但我还有另一个问题 TypeError: this.state.items.map 不是函数 @AbdulRauf 你能展示你的 json 响应数据样本吗?是数组还是对象 它是一个包含 7 个项目的数组 非常感谢您的帮助。 @VahidAkhtar以上是关于Axios在react js中获取请求时出错的主要内容,如果未能解决你的问题,请参考以下文章
使用 Axios 从 React 获取请求中的 Spring Pageable 对象
Axios 承诺处理 - 在 react-native 中获取“可能的未处理承诺拒绝 - 类型错误:网络请求失败”