首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁止使用useMemo重新渲染

禁止使用useMemo重新渲染
EN

Stack Overflow用户
提问于 2021-09-16 13:37:49
回答 1查看 77关注 0票数 0

我每30秒执行一次抓取,并将响应保存到我的redux状态。我想要做的是,如果响应与前一个响应相同,则阻止重新呈现组件。为了做到这一点,我尝试了useMemo钩子。

代码语言:javascript
复制
const details = useSelector((state: RootState) => state.orders.details);

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

这就是我实现useMemo的方式

代码语言:javascript
复制
const memorizedDetails = useMemo(() => {
    return details;
  }, [details]);

最后是我的useEffect

代码语言:javascript
复制
  useEffect(() => {
    if (memorizedOrderDetails) {
      console.log("content changed");
    }
  }, [memorizedOrderDetails]);

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

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

EN

回答 1

Stack Overflow用户

发布于 2021-09-16 13:47:12

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

下面是reselect的链接:https://github.com/reduxjs/reselect

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69209486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档