【发布时间】:2020-03-07 10:22:03
【问题描述】:
我正在尝试使用 axios 从 api 获取数据,问题是我只想要一个具有特定 id 的元素,但是当我使用 console.log 时,我得到了数百行相同的元素
constructor(props) {
super();
const id= props.match.params.id;
this.state = {
items: [],
id: id,
}
}
render() {
axios.get(`http://api.tvmaze.com/shows/${this.state.id}`)
.then(res => {
this.setState({ items: res.data });
// console.log(this.state.items);
});
【问题讨论】:
-
你想从那个 API 中得到什么?如果我使用 id 访问该端点,我只会得到一个具有许多属性的对象。例如:api.tvmaze.com/shows/1
-
当我在控制台中显示时,我获得同一个对象的次数太多,需要限制它,我尝试了api.tvmaze.com/shows/${this.state.id}_limit=1,但它被核心策略阻止了
-
我明白了。你的渲染里还有什么?每次发生渲染时,您都会发送 API 请求,因此您可能希望从渲染中删除该调用并将其放在
componentDidMount中。 -
确实是问题所在,非常感谢。
-
不客气。我在讨论中发布了一个实际答案。
标签: reactjs