首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React.memo不工作于功能组件

React.memo不工作于功能组件
EN

Stack Overflow用户
提问于 2021-12-09 16:25:48
回答 2查看 2.2K关注 0票数 1

我尝试使用React.memo()来防止在我的一个组件上重新呈现,但是每当它的父组件发生更改时,它就会继续重新呈现。

下面是带有React.memo()的子组件

代码语言:javascript
复制
const Transactions = React.memo(() => {
  console.log('rerender')

  return (
    <></>
  )
})

这就是它的名字所在。每当我单击Add按钮,它就调用状态函数setModal(true),事务组件将被重新呈现为

代码语言:javascript
复制
const ScholarHistory = ({setModal}) => {
  return (
    <div className="pml-scholar pml-scholar--column">
      <div className="pml-scholar-container">
        <button onClick={() => setModal(true)} className="pml-scholar-add-button"> Add </button>
      </div>

    <Transactions />
    </div>
  )
}

我是新的反应和探索/创造更广泛的项目。你知道为什么它一直在重新渲染吗?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-09 17:28:00

我试图移除setModal组件上的道具,并且能够阻止重呈现。

我不知道是什么原因造成的,因为它与子组件没有任何关系,而只是作为父组件- ScholarHistory的支柱。

票数 0
EN

Stack Overflow用户

发布于 2022-11-07 04:36:10

把它放在这里给仍然有同样问题的人来晚一点。

我认为原因是setModal支柱以某种方式删除了整个父组件,因此也删除了缓存的Transactions组件,从而导致了重登。

如果您只是更改父组件的支柱(即更改它的状态)而没有从虚拟DOM树中删除它,那么子组件将不会被重命名。

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

https://stackoverflow.com/questions/70293333

复制
相关文章

相似问题

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