
코드는 불편하실까봐 통째로 올리겠습니다.
import React from "react";
import {useState} from 'react'
const Chart_Pie1 = React.lazy(() => import("../components/Chart_Pie1"));
const Dev = () => {
var chartData = [
{
id: "java",
label: "java",
value: 1985,
color: "hsl(90, 70%, 50%)"
},
{
id: "erlang",
label: "erlang",
value: 419,
color: "hsl(56, 70%, 50%)"
}
];
const [hasRender, setRender] = useState(false);
const onShow = React.useCallback(() => setRender(true), []);
function changeValue() {
chartData = [
{
id: "java",
label: "java",
value: 1985,
color: "hsl(90, 70%, 50%)"
},
{
id: "erlang",
label: "erlang",
value: 414839,
color: "hsl(56, 70%, 50%)"
},
];
console.log(changeValue)
return changeValue;
}
function isChanged(){
console.log(chartData)
}
return (
<>
<button onClick={onShow}>showChart</button>
<button onClick={changeValue}>changeValue</button>
<button onClick={isChanged}>isChanged?</button>
{hasRender && <Chart_Pie1 chartData={chartData}/>}
</>
)
}
export default Dev;
사진과 같이 객체의 값을 변경했음에도 불구하고 처음의 값으로 렌더가 됩니다.