【发布时间】:2019-02-01 12:54:11
【问题描述】:
我正在为我的 react 应用程序使用 redux。我正在从 api 获取用户数据,用它更新 redux 状态并将其显示到我的组件中。数据是对象列表。导致我出现问题的原因是设置 redux 初始状态。
Reducer 初始状态:
const initState = {
users: []
}
减速器动作
case 'GET_USERS':
return {
users: action.users
}
});
在组件中渲染
{this.props.users[1].name}
在第一次渲染时,我收到错误无法从未定义的属性中读取。这是因为第一次渲染数据尚未存储,并且具有该属性的对象还不存在。如果我设置初始状态,我可以解决这个问题:
const initState = {
users: [
{name: "", age: ""},
{name: "", age: ""}
]
}
在这种情况下,具有属性的对象将存在,我不会得到错误。但我不知道我将拥有多少个对象,并且我不想为每个对象及其属性设置初始状态。那么如何正确设置呢?
【问题讨论】:
-
例如,您需要使用地图迭代数组,然后在地图内渲染项目。在这种情况下,如果数组为空,则不会进行渲染。
-
我认为您应该扩展您的渲染方法,以充分向我们展示您尝试输出的内容。
标签: javascript arrays object redux