【发布时间】:2024-04-22 05:15:02
【问题描述】:
-
我有父组件 A,我从中获取 TODO 列表 (比如说 10 项),然后映射这个数组并将整个对象传递给组件 B 。
-
组件 B 有一个 memo 包装器来比较 todo 对象引用以重新渲染仅更新的组件。某样东西:
export default memo(ComponentB, (prevProps, nextProps) => { return prevProps.TODO === nextProps.TODO }) -
从组件 B 上的按钮单击调用 useMutation 以在列表中添加一项。我提供了 optimisticResponse 和 update 功能,就像在 Apollo doc
上一样 -
一切正常,除了:当我添加 optimisticResponse 以快速更改 UI 并登录组件 B 时,我看到每个列表项都在重新渲染,但是,如果我只是离开 update 函数而没有 optimisticResponse,那么我会看到只有一项重新渲染。
所以我的问题是,Apollo 是这样处理 optimisticResponse 更新的,还是我应该继续在我的代码中寻找一些问题,并且我已经在尝试找出几个小时了: /
我只是找不到任何材料来指出这种特殊情况,如果有人知道答案,也许可以分享链接或小建议。谢谢!
【问题讨论】:
标签: reactjs react-apollo apollo-client