我有一个 React 应用程序,并使用 redux 和 props 将对象数组获取到我的组件中,并且我正在获取它们。但我无法访问该数组中的某个对象内部的特定属性。
这样:
console.log(this.props.users)
我列出了其中包含所有对象的数组。但是,当我需要访问特定对象或该对象的属性时,例如:
console.log(this.props.users[0])
console.log(this.props.users[0].name)
我收到错误:
Cannot read property '0' of undefined
但是当我使用 map() 方法迭代数组时,我可以访问它,它可以工作。为什么我无法正常访问?
最佳答案
您正在尝试在 this.props.users
加载之前访问它的属性。您的组件无需等待数据获取即可渲染。当您 console.log(this.props.users)
时,您说您获得了一个数组,但除此之外,它可能在组件渲染之前至少记录一次 undefined
this.props.users
已加载。
您有几个选择。您可以在渲染方法的最顶部执行此操作,以防止执行该方法中的其余代码:
if (!this.props.users) return null;
一旦获取数据并且 props 发生变化,渲染方法将再次被调用。
另一个选项是在您的 reducer 中为 users
声明一个空数组的默认值。
关于javascript - 如何从对象数组中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54465041/