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

减速机初始状态:

const initState = {
    users: []
}


减速器动作

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!'}

10-05 20:35
查看更多