reactjs - 在 react.js 上使用 Axios 从 API 中提取数据。我究竟做错了什么?
问题描述
我正在尝试从下面的数组中提取数据。我的代码在我的 console.log 下方。我究竟做错了什么?当我尝试提取数据时,什么都没有呈现。
(356) […]
[0…99]
0: Object { TournamentID: 405, Name: "The Presidents Cup", StartDate: "2021-09-30T00:00:00", … }
1: Object { TournamentID: 453, Name: "Tour Championship", StartDate: "2021-09-02T00:00:00", … }
2: Object { TournamentID: 452, Name: "BMW Championship", StartDate: "2021-08-26T00:00:00", … }
下面是我用来提取数据的代码。
function App() {
const [data, setData] = useState([])
useEffect(()=>{
axios
.get('https://api.sportsdata.io/golf/v2/json/Tournaments?key=72259e02756442d38c6b837dd8625e4f')
.then((res)=> {
console.log(res.data)
setData(res.data)
})
},[])
return (
<div className="App">
<div className='container'>
<h1>{data.Name}</h1>
</div>
</div>
);
}
export default App;
解决方案
您需要使用以下内容映射数据数组:
return (
<div className="App">
<div className='container'>
{data.map(item => <h1 key={item.TournamentID}>{item.Name}</h1>)}
</div>
</div>
);
您还需要 key 属性。
推荐阅读
- laravel - Laravel how to create a validation rule to allow only a certain value to be chosen based on previous choice
- python - 如何在 metaflow 中创建嵌套分支?
- c - GCC 在将 int 转换为 float 时插入 PXOR
- javascript - 为什么我的 js 函数需要来自我的 php 迭代器的东西?
- android - 在kotlin中设置递增和递减按钮的范围
- python-3.x - "//div[contains(@class,"connexion-content")]//select" 处的元素不可点击
- python - matplotlib如何在动画时旋转图像
- visual-studio - Visual Studio 2019 IntelliSense 中的奇怪行为