首页 > 解决方案 > 即使返回的类型是对象,也无法访问对象属性-React + Typescript

问题描述

我有一个 React 状态,它是对象数组,我在 setState 方法中向它添加一个对象。对象添加正确。

现在,当我尝试在其他函数中访问对象时,我无法访问对象的属性。我可以在控制台上看到该对象与属性一起存在。我在stackoverflow上检查了其他与异步调用相关的类似问题,但我的不属于这个范围。

我已经创建了这样的对象数组,

interface ResultState{
....
localArray : object[];
}

在构造函数中将其初始化为 null。

并为其添加一个对象,例如,

localArray : this.state.localArray.concat(Items1)

我的控制台输出:

localArray -> [{}]
              0:
                 name: 'abcd'
                 roll_num: 10
                 address: [{...}]
                     0: {Street:  'abcdefgh', aptnum: 1}

现在我想访问对象的地址。我的代码是这样的,

const resultObject = this.state.localArray[0];
return resultObject.address;

但是我得到一个错误属性地址在类型对象上不存在。

当我执行 console.log(typeof(resultObject)) 时,出现了对象。

这可能是什么原因?

标签: reactjstypescript

解决方案


是的,这是因为数组的类型。改成之后localArray: any[],就成功了!


推荐阅读