我的应用程序通过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
次调用。
我很茫然。我还能检查什么?