javascript - 如果initialState 将有一个对象响应数组,它应该初始化为 null 还是空数组?

标签 javascript redux

我正在构建一个小型照片共享应用程序,我的 photos 缩减器中有以下 initialState:

{
  photos: null
  category: null
}

从我的 API,我将收到如下响应:

{
  category: 'Animals & Nature',
  photos: [{ id: 1001, url: 'cdn.url.com/img1001', title: 'dog' }, { id: 1002, url: 'cdn.url.com/img1002', title: 'cat' }
}

由于photos将是一个对象数组,我的初始状态应该将其设置为null还是[]

此外,如果我获得更多照片,我需要将它们连接到 state.photos..

这种情况如何最好处理?

最佳答案

最好将数组初始化为 [] 而不是 null。这种方法有很多优点。至少其中一个优点是 - “您无法调用 null 对象的方法(例如),您将无法检查值为 null 的数组的长度。但是,您确实可以检查空数组的值。

var arr = [];
console.log("Array Length - " + arr.length); //Length - 0

现在尝试下面的代码片段

var arr = null;
console.log("Array Length - " + arr.length); //Uncaught TypeError: Cannot read property 'length' of null

关于javascript - 如果initialState 将有一个对象响应数组,它应该初始化为 null 还是空数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43097277/

相关文章:

javascript - 为什么我的 React 组件渲染被调用两次,一次没有数据,然后又一次有数据,但是为时已晚的异常?

reactjs - 如何使用react-redux将redux存储中封装的ui状态映射到props?

javascript - Redux Reducer - 如何在不改变状态的情况下更新对象值?

Javascript jQuery 然后间隔

javascript - 在webpack中多次处理一个sass文件(多种配置)

javascript - 使用 ...spread,但 redux 仍然会发出有关状态突变的警告

javascript - React Router 重新渲染路由而不是重新渲染组件

javascript - 如何将 Nodejs 与 R 结合使用来获取结果

javascript - 如何替换 html 中不包括标签属性的文本?

javascript - 单元测试 Jasmine 中的 Angular 服务方法