javascript - 如何从对象数组中获取值?

标签 javascript arrays reactjs object react-props

我有一个 React 应用程序,并使用 redux 和 props 将对象数组获取到我的组件中,并且我正在获取它们。但我无法访问该数组中的某个对象内部的特定属性。

这样:

console.log(this.props.users)

enter image description here 我列出了其中包含所有对象的数组。但是,当我需要访问特定对象或该对象的属性时,例如:

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/

相关文章:

javascript - 如何从异步调用返回响应?

javascript - 如果我忽略 "coding nicely"并将 css(使用样式标签)和 js(使用脚本标签)代码放在一个 html 文件中会发生什么

java - 从 Notes 多值字段创建 String[] 数组

JavaScript 添加日期

javascript - 防止在文本字段中输入某些字符

iphone - 平行阵列

php - php中的多级维数组

javascript - React + Webpack 不解析文件加载器

javascript - 用于创建和编辑的 Redux 表单

javascript - ReactJs 不更新状态