我有一个React状态,它是对象数组,我正在setState方法中向它添加一个对象。对象正确添加。
现在,当我尝试通过其他功能访问对象时,无法访问对象的属性。我可以在控制台上看到该对象具有属性。我在stackoverflow上检查了其他与异步调用相关的类似问题,但我的问题不属于该问题。
我已经创建了这样的对象数组,
<div class="post-arrow post-arrow--right"></div>
在构造函数中将其初始化为null。
并向其添加对象,
interface ResultState{
....
localArray : object[];
}
我的控制台输出:
localArray : this.state.localArray.concat(Items1)
现在我要访问对象的地址。 我的代码就是这样,
localArray -> [{}]
0:
name: 'abcd'
roll_num: 10
address: [{...}]
0: {Street: 'abcdefgh', aptnum: 1}
但是我得到的错误属性地址在类型对象上不存在。
当我执行console.log(typeof(resultObject))时,会出现对象。
这可能是什么原因?
答案 0 :(得分:0)
是的,这是因为数组的类型。将其更改为localArray: any[]
后,它可以正常工作!
答案 1 :(得分:0)
很高兴您能使用它,但是使用类型<li class="no-page">
并不好,因为它表明您的数组可以包含任何内容。您真正想要的是让Typescript知道数组中特定对象的类型。根据您发布的内容,它应该类似于:
any[]
这样,打字稿知道您的数组元素是对象,但也知道哪些属性有效,以及每种属性的类型。