【发布时间】:2021-04-13 15:21:17
【问题描述】:
我想获取 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);
可能是什么问题?
【问题讨论】:
-
data.sessions[data.sessions.length - 1];获取最后一项 -
@decpk 刚刚更新了帖子,它仍然显示错误。 "(未定义不是一个对象(评估'data.sessions.length')
-
毕竟是how-do-i-return-the-response-from-an-asynchronous-call。我有点困惑,因为结构是嵌套的,并且您在数组上使用
Object.keys,但是哦,好吧。 -
@ASDFGerte 你能解释一下如何以正确的方式做吗?
标签: javascript json react-native