我的应用程序通过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
调用 .
我不知所措 . 我还能检查什么?