我正在尝试在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
问题:每次输入文本更改时,图形都会重新呈现。