apollo客户端缓存更新,但ui没有

时间:2018-05-15 03:39:17

标签: reactjs graphql apollo react-apollo apollo-client

我的应用程序通过id检索对象path进行深入查询,并通过各种反应道具传递结果。 在许多其他事项中,path的列表为steps。突变可以在step列表中添加额外的path.steps

我正在进行变异,然后更新缓存。之后我可以检查InMemoryCache缓存,并且可以看到项目确实已添加。我没有得到任何警告。这就是相关部分的样子

const { steps } = cache.readFragment({
  id: `Path:${pathId}`,
  fragment: PathLogFragment,
  fragmentName: 'PathLogFragment'
})
cache.writeFragment({
  id: `Path:${pathId}`,
  fragment: PathLogFragment,
  fragmentName: 'PathLogFragment',
  data: { __typename: 'Path', steps: [...steps, addStep] }
})

现在我有一个消耗步骤但不更新的组件。 这是一个非常简单的steps.map(s => <li>step</li>)。 它被称为:{path.steps && <Steps steps={path.steps} />}

获取path并将其移动时涉及渲染道具,并且途中有PureComponents,但没有shouldComponentUpdate次调用。

我很茫然。我还能检查什么?

0 个答案:

没有答案