在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ react 中 React.Children.map 為什么會重繪

react 中 React.Children.map 為什么會重繪

代碼如下,為什么在currentItem.isLeaf 變化時,整個組件(包括子組件)都會發(fā)生重新mount

return React.Children.map([0,1,2,3,4,5,6], (Child, index) => {
      const ChildNode = currentItem.isLeaf === '1' ?
        AComponent :
        BComponent;

      return React.createElement(ChildNode,
        {
          amount: 5,
          index,
          key: `level-${index}`,
        }
      )
    })
回答
編輯回答
玄鳥

答案是type不同了。

React.createElement的函數(shù)簽名是 React.createElement(type, props, children)

React在做dom diff時候,首先判斷的就是type,如果type不一致就會重新渲染(remove然后append)。

題主currentItem.isLeaf 變化時,對應(yīng)的正好就是type發(fā)生變化,因此會重新渲染。

2017年3月1日 12:49