reactjs - React + Axios - 加载的数据能够控制台日志但未显示在 DOM 中?
问题描述
我的简单 React 应用程序有问题。我可以使用 Axios 连接到 API 并且可以控制台日志。但是,我无法在 DOM 中输出数据。它是空的,为什么?
import React, { Component } from 'react';
import axios from 'axios';
class App extends Component {
state = {
fragrances: []
}
componentDidMount() {
axios.get('http://localhost:1337/fragrances')
.then(res => {
const fragrances = res.data;
this.setState({ fragrances });
})
}
render() {
const { fragrances } = this.state;
return (
<div>
{
fragrances.map((fragrance, index) => {
<h2>{fragrance.Name}</h2>
console.log(fragrance);
})
}
</div>
);
}
}
export default App;
解决方案
你没有从你的map
它应该是
fragrances.map((fragrance, index) => {
return Boolean(fragrance.Name) && <h2 key={index}>{fragrance.Name}</h2>
})
如评论中所述,您在返回组件列表时需要使用键。我在这里使用index
,但这是一个不好的做法(阅读https://reactjs.org/docs/lists-and-keys.html#keys)。希望您的fragrance
对象具有独特id
性,这是您应该使用的。
推荐阅读
- java - Java create new instance of class based on another class
- c - 是什么让 Printf 打印两次?
- angular - 为什么拖放在此 PrimeNG 树中不起作用?
- python - Python Boto3 使用 NextToken 通过路径从 SSM 获取参数
- c# - 使用 LINQ 将子对象列表从连接表映射到父对象
- python - Dash RangeSlider 将步骤表示为日期
- python - 打印在python中保持在同一行
- python - Flask API 错误将 JSON 字符串转换为 pandas 数据帧
- android - CollapsingToolbarLayout 在 ImageView 中显示填充底部
- python - 流媒体直播时如何发送消息和嵌入?| 错误 | 不和谐.py