javascript - 无法读取以下 JSON 对象,即使元素存在也给出未定义
问题描述
我有以下对象(在内部操作了一些点之后)我称之为 props.stuff ,给定:数据从父组件传递给子组件
//Parent
componentDidMount() {
this.getData();
}
async getData() {
const res = await axios.get(
"{link here}"
);
const { data } = await res;
this.setState({ stuff: data});
}
<Child props={this.state.stuff} />
所以,当我这样做时,在 Child 中console.log(props.stuff)
:
props.stuff= {
"date":"November 14",
"status":"PENDING",
"id":"146859",
"invoice_number":"123685479624",
"amount":"950.00",
"currency":"$"
}
但是尝试访问 props.stuff.date (或类似 props.stuff. {element}的任何东西)会给我undefined。我究竟做错了什么?
注意:我通过执行 console.log(JSON.stringify(props.stuff)) 得到了下面的字符串,所以这正是它的本质。
解决方案
所以我终于想出了解决方案。实际上 props 是从父组件传递给子组件的,而在父组件中,它是通过 API 调用获取的。所以 props 的初始值是不确定的。
在父组件中,编写:
{props.stuff && <Child stuff={props.stuff} />}
这确保了 props 仅在存在时才传递,从而解决了问题
推荐阅读
- amazon-web-services - AWS.EC2.Windows.CloudWatch.json 未记录可用磁盘空间
- sql - SQL-在数据库中查找丢失成绩的学生
- google-chrome - 如何处理从 Chrome 80 开始的新的第三方 cookie 规则?
- xml - 如何在 XSLT3.0 中将空行从 xml 删除到 CSV 输出
- c - 在C中使用队列反转堆栈
- javascript - 如何使用 Observable 启动下一个异步任务
- python - 23.2 项目 2:使用 LOOPS 进行数据可视化
- go - 使用 GORM 和 echo-framework 进行更新的惯用方式
- apache-kafka - Kafka 的消费者线程数应该等于主题分区数
- reactjs - react-router-dom history.goBack() 在 Firefox 和 Safari 上不起作用