javascript - React Native - 未定义不是对象
问题描述
我想获得 json 响应的最后一项。
当我这样做时console.log(this.state.details.sessions)
,它会显示我关注 json 对象。
[{"login_time": "12-04-2021 20:52:29", "logout_time": ""}, {"login_time": "12-04-2021 20:54:53", "logout_time": "12-04-2021 20:55:13"}]
但是,如果尝试获取此项目的长度,例如:
Object.keys(this.state.details.sessions).length
我收到以下错误:
undefined 不是一个对象(评估 'Object.keys(data.sessions)')
const {number} = this.props.route.params;
database().ref('/numbers/'+number.replace('+', ''))
.on('value', (snapshot) => {
const userObj = snapshot.val();
this.setState({
details: userObj
})
});
console.log(Object.keys(this.state.details.sessions).length);
可能是什么问题?
解决方案
首先this.state.details.sessions
是undefined
,你不能Object.keys
在上面使用
在您将数据设置为之后
this.setState({
details: userObj,
});
this.state.details.sessions
实际上是一个数组
推荐阅读
- image - FFMPEG > 以静止图像结束视频
- javascript - 使用 vue-router 滚动时如何更改 URL?
- java - 一个类的静态 const 数据成员作为同一个类的成员数组的大小?
- linux - 无法在脚本中运行命令“查找”
- ionic-framework - 您已超出此付款的银行限额,请以较小的金额重试 - Google pay in ionic
- image - KITTI 灰色、彩色图像匹配
- c - 1548132==错误:LeakSanitizer:检测到内存泄漏
- responsive - 如何在我的网站上使用漂亮的现代谷歌翻译工具栏
- python - Django Migrate 表创建不一致 - 多个旧版数据库
- r - 在数据框中创建空列时出现非数字错误