我正在将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!'}