gpt4 book ai didi

javascript - 从 Axios GET 请求访问数据

转载 作者:行者123 更新时间:2023-11-29 21:02:27 24 4
gpt4 key购买 nike

我无法通过 Axios GET 请求访问数据。我希望能够遍历我获得的所有数据并创建一个表来显示每个用户的用户名、头像和分数。我目前能够呈现单个用户名的唯一方法是使用以下代码:

  this.setState({name: res.data[0].username}); 

但是上面的代码只允许我访问我在 GET 请求中使用的 URL 中的第一个对象。如果我使用这段代码:

this.setState({name: JSON.stringify(res.data)});

我能够将整个对象呈现为字符串。所以这让我觉得我需要更新我的渲染方法,但我不确定如何。

我应该采取什么步骤才能映射我正在设置的状态并在表格或列表中呈现每个用户的数据?

class LeaderBoard extends React.Component {

constructor(props) {
super(props)
this.state = {
name: []
}
}

componentDidMount(){

axios.get('https://fcctop100.herokuapp.com/api/fccusers/top/recent').then(res =>
{

this.setState({name: res.data[0].username});
});

}


render () {

return (
<div>
<h1>{this.state.name}</h1>

</div>
)
}
}


ReactDOM.render(
<LeaderBoard/>, document.getElementById("app"));

最佳答案

您走在正确的轨道上,只是遗漏了一些关键部分。

第 1 步:将整个数组添加到您的状态

我不确定你的数据的确切结构,但你可能想这样做

componentDidMount(){

axios.get('https://fcctop100.herokuapp.com/api/fccusers/top/recent').then(res =>
{

this.setState({data: res.data});
});

}

现在,您在自己的状态下拥有了要使用的所有数据,随时可以进行迭代。

第 2 步:使用 .map()创建你想要的 JSX 元素

这里的代码:

render () {

return (
<div>
<h1>{this.state.name}</h1>
</div>
)
}
}

这里最大的错误是它只会渲染一个 东西,因为,好吧,那就是全部了。你要做的是.map()通过并从您的数据中创建一堆名称,对吗?

那看起来更像这样。

  render () {
const namesToRender = this.state.data.map(val => {
return (
<h1>val.username</h1>
)
})
return (
<div>
{namesToRender}
</div>
)
}
}

所有这一切都在说“检查这些数据并给我每个人的名字并将其包装在一些 <h1> 标签中并吐出”。

关于javascript - 从 Axios GET 请求访问数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45850550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com