javascript - 如何设置对象数组的 redux 初始状态?

标签 javascript arrays object redux

我正在为我的 React 应用程序使用 redux。我正在从 api 获取用户数据,用它更新 redux 状态并将其显示到我的组件中。数据是对象列表。导致我出现问题的是设置 redux 初始状态。

reducer 初始状态:

const initState = {
    users: []
}

reducer Action

case 'GET_USERS':
    return {
        users: action.users
    }
});

在组件中渲染

{this.props.users[1].name}

在第一次渲染时,我收到错误无法从未定义的属性中读取。这是因为第一次渲染数据尚未存储,并且具有该属性的对象尚不存在。如果我设置初始状态,我可以解决这个问题:

const initState = {
    users: [
        {name: "", age: ""},
        {name: "", age: ""}
    ]
}

在这种情况下,具有属性的对象将存在,并且我不会收到错误。但我不知道我将拥有多少个对象,并且我不想为每个对象及其属性设置初始状态。那么如何正确设置呢?

最佳答案

只需检查它是否存在并有条件地渲染

{this.props.users.length > 1 ? this.props.users[1].name : 'Not enough elements!'}

关于javascript - 如何设置对象数组的 redux 初始状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54479974/

相关文章:

javascript - 使用 Angular 在本地绑定(bind) DataViz 图表

arrays - numpy 乘以不同形状的数组

javascript - 为什么 Object.assign 没有替换我的新对象中的键?

java - 是否需要开始事务才能在数据库中查找对象?

javascript - 如何克隆数组中的对象项?

javascript - dijit.Tree 即使没有子文件夹,文件夹也会显示为 PLUS 图标

javascript - 告诉 JavaScript 我的数组在搜索元素时已排序

javascript - 如何检查数组中是否存在值?

ruby-on-rails - 根据数组内容插入数组的特定位置Ruby

Javascript - 链接到更大数组的值数组