首页 > 解决方案 > 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);

可能是什么问题?

标签: javascriptjsonreact-native

解决方案


首先this.state.details.sessionsundefined,你不能Object.keys在上面使用

在您将数据设置为之后

this.setState({
  details: userObj,
});

this.state.details.sessions实际上是一个数组


推荐阅读