json - 无法访问 Json 中的某些属性
问题描述
我运行了一个 api 并获取了 object 的 json 对象。下面是该对象的屏幕截图。在本机反应中,我从带有关键“数据”的 redux 组件中获取这些数据。
当我尝试在 mapStateToProps 组件中获取城市名称时,出现此错误
TypeError:无法读取未定义的属性“名称”
块引用
我的 mapStateToProps 如下。
const mapStateToProp = ({data}) => {
//console.log(data);
return {
city: data.data.city.name
}
}
我正在获取城市的完整数据,但无法访问其名称属性 为什么?
解决方案
由于您从获取请求中获取数据,因此 city 属性在请求之前可能不存在。尝试通过在 mapStateToProps 中设置值时检查城市是否存在来防止错误
const mapStateToProp = ({data}) => {
//console.log(data);
return {
city: data.data.city ? data.data.city.name : null
}
}
请记住,在您的存储中没有深度嵌套的数据也是一个好习惯。
推荐阅读
- excel - 收到错误为“运行时错误 1004 对象 _worksheet 范围失败”无法找到其背后的确切原因
- amazon-web-services - 使用 Godaddy 域和 SSL 的 Aws 托管以与 cloudflare 一起使用
- flutter - 颤振中CustomPaint的高度
- c - 数据变量/常量和类型 int 常量(C Primer Plus)
- python - 如何将渐变应用于不确定形状的 QGraphicsitem?
- r - 功率可视化仿真不能预测内置功率函数
- c# - 在 Asp.net 中的 gridview 上显示数据
- java - 添加内部标签会导致字符串变量出错
- python - 未找到带有参数“(”,)”的“程序”的反向。尝试了 1 种模式:['home/(?P
[0-9]+)/程序/$'] - android - 如何将 java 和 xml 代码(从 api 获取)运行到另一个片段中