标签: apollo-link-state

如何处理apollo-link-state中的嵌套状态(类似于Redux的combineReducers)

如果我们看一下todos示例,假设应用程序有多个视图(TodoList页面和另一个页面).

因此,不是直接引用todo项的数组的"todos",而是在状态/存储/缓存的顶层,它实际上只是具有某些自身状态的视图.

在该视图中,我们定义了待办事项列表和可见性过滤器 - 因此状态/存储/缓存不会如下所示:

{
  todos: [TodoItem]
  0:?TodoItem:0
  completed: false
  id: 0
  text: "hh"
  visibilityFilter: "SHOW_ALL"
}
Run Code Online (Sandbox Code Playgroud)

但是:

{ 
  scenes: {
    TodoList: {
      todos: [TodoItem]
      0:?TodoItem:0
      completed: false
      id: 0
      text: "hh"
      visibilityFilter: "SHOW_ALL"
    },
    SomeOtherView: { /* other state */}
  }
}
Run Code Online (Sandbox Code Playgroud)

它甚至可能被孤立在它自己的数据"模块"中,就像这里提出的那样:https://medium.com/@alexmngn/how-to-use-redux-on-highly-scalable-javascript-applications-4e4b8cb5ef38:

{ 
  scenes: {
    TodoList: {
      data: {
        todos: [TodoItem]
        0:?TodoItem:0
        completed: false
        id: 0
        text: "hh"
      }
      visibilityFilter: "SHOW_ALL"
    },
    SomeOtherView: { /* other state */}
  }
}
Run Code Online (Sandbox Code Playgroud)

应用程序范围的状态将进一步存储一个级别: …

apollo react-apollo apollo-client apollo-link-state

12
推荐指数
1
解决办法
1425
查看次数