shouldComponentUpdate()返回false但组件仍然重新呈现

时间:2018-05-07 12:50:48

标签: javascript reactjs

我正在创建一个应用,其中我有一个Overlay组件和一个Map组件渲染,就像这样:

<div>
   {showOverlay && <Overlay />}
   <Map /> // this component should render only once
</div>

显示叠加层以让地图加载到下方,但当我删除Overlay(此处将showOverlay设置为false)时,Map组件会重新渲染。

起初我认为可能是一个改变了导致重新渲染的道具,所以我尝试通过在Map方法中返回false来明确告诉shoudComponentUpdate()组件不要重新渲染:

  shouldComponentUpdate() {
    console.log("No, don't update please");
    return false;
  }

但结果是一样的,当我关闭叠加层时,组件会重新渲染。

为了使事情变得更奇怪,当组件重新渲染时,shouldComponentUpdate()未被调用(我没有在控制台中获得"No, don't update please"日志。)

什么原因导致我的组件重新渲染?

谢谢!

0 个答案:

没有答案