我正在为我的 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/