197 - 《一个 props 相关的 re-render 问题》

发布于 2022年10月16日

Monster 提问:context re-render 问题
use-context-selector-example - CodeSandbox https://codesandbox.io/s/github/dai-shi/use-context-selector/tree/main/examples/02_typescript
这是 use-context-seletor 的官方例子。点击 + 或者 - 按钮,下面 Person 表单不会刷新
charming-gould-bhpgfh - CodeSandbox https://codesandbox.io/s/charming-gould-bhpgfh?file=/src/App.tsx
而改写其中一段,删除 Provider 组件,直接将 context 放到 app 里,操作 Counter 也会更新 Person

早上看到 dan 的 twitter 才想起之前有个提问 https://t.zsxq.com/07mIQ33Vv 忘回答了,大家可以先看下原问题。

那么,为啥「后者操作 Count 也会更新 Person」?

其实 Person 更新不是因为其通过 useContextSelector 订阅的数据更新,而是因为 Body 组件 rerender 了,

内容预览已结束

此内容需要会员权限。请先登录以查看完整内容。