即使道具没有变化,React子组件也会重新渲染

时间:2020-07-01 04:36:30

标签: reactjs react-hooks render react-props setstate

我正在尝试在React组件的D3中创建图表。每当我更改父组件中的状态时,即使子代的道具未更改或受setState的任何影响,也将重新渲染子代。我什至尝试在子组件上使用React.memo,但它仍然被重新渲染。如果道具未更改,如何避免重新渲染。

PSEUDOCODE

  /* Parent component */

  function parentComponent(props) {
     const [a, setA] = useState({})
     
     function customEventHandler() {
       setA(); // This cause child to re-render
     }

     return (
       // Some rendering based on the value of a
       // Some custom event handler 
       <ChildComponent config={{}} />
     ) 
  }

  /* Child component [D3 based component with useRef] */
  function childComponent = React.memo((props) => {})

此处的CodeBox链接https://codesandbox.io/s/patient-fast-unlzq?file=/src/App.js

问题:每次输入文本更改时,图形都会重新呈现。

0 个答案:

没有答案