【发布时间】:2021-01-01 19:11:26
【问题描述】:
如下图所示,我有一个基本的反应上下文设置。
我希望使用上下文的子组件只应在上下文数据更改时重新渲染,但我发现情况并非如此。
如果我更新与上下文无关的调用setData2,则会在Container 上触发状态更新,随后触发重新计算并导致消费子更新。
有问题的子组件已经在使用React.memo,所以它只会在它的useContext 钩子引导它时更新。但是当Container 更新时,上下文也会更新,即使data1 没有改变。
有办法解决吗?
const Container = () => {
const [data1, setData1] = useState(...);
const [data2, setData2] = useState(...);
return (
<MyContext.Provider value={{ data1, setData1 }}>
// child component hierarchy
</MyContext.Provider>
);
};
【问题讨论】:
标签: reactjs react-context react-lifecycle use-context