问题背景
在数据没有发生变化的情况下React组件会进行数次重复渲染,绘制出来完全相同的两个图
排查思路
寻找子组件重渲染原因实验
测试一:在子组件的props未发生任何变更的情况下是否会发生重新渲染
import React, {
useState } from "react"
import {
Select } from "antd"
const {
Option } = Select
export function Chart() {
console.log("父组件重新渲染了")
const [selectedOption, setSelectedOption] = useState("option1")
function handleSelectChange(value) {
setSelectedOption(value)
}
return (
<div>
<Select defaultValue={
selectedOption} onChange={
handleSelectChange}>
<Option value="option1">Option 1</Option>
<Option value="option2">Option 2</Option>
<Option value="option3">Option 3</Option>
</Select>
<ChildComponent />
</div>
)
}
function ChildComponent() {
console.log("ChildComponent重新渲染了")
return