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

我正在进行变异,然后更新缓存 . 之后我可以检查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 调用 .

我不知所措 . 我还能检查什么?