防止使用useMemo重新渲染



我每30秒取一次,并将响应保存在我的redux状态。我想做的是防止组件的重新渲染,如果响应是相同的前一个。为了做到这一点,我尝试了使用ememo钩子。

const details = useSelector((state: RootState) => state.orders.details);

这是我每30秒更新一次的状态。(这是一个对象)

这是我如何实现useMemo

const memorizedDetails = useMemo(() => {
return details;
}, [details]);
最后是useEffect
useEffect(() => {
if (memorizedOrderDetails) {
console.log("content changed");
}
}, [memorizedOrderDetails]);

但即使更新的细节与前一个相同,它也总是记录"内容更改"。每30秒一次

我在这里使用useMemo的方式是错误的吗?

我建议你使用reselect来记忆选择器,所以如果没有变化,它不会呈现

这是重选的链接:https://github.com/reduxjs/reselect

相关内容

  • 没有找到相关文章

最新更新