reactjs - apollo 客户端缓存更新,但 ui 没有
问题描述
我的应用程序对通过 id 检索对象进行深度查询,path
并通过各种 react props 传递结果。在许多其他事情中, apath
有一个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
调用。
我不知所措。我还能检查什么?