Intro
์๋ ํ์ธ์. ์ ๋ recharts chart ์ฐจํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฐจํธ์ ๋์ด๋ฅผ ํ๋ฉด 100%์ ๋ง์ถฐ์ ๋ฟ๋ ค์ฃผ๊ณ ์ถ์๋๋ฐ์. width ๊ฐ์ 100%๋ก ์ค์ ํ์ ๋ค์์ ์๋ฌ๊ฐ ๋ฐ์ํ์ต๋๋ค.
TS2322: Type 'string' is not assignable to type 'number'.
import {NextPage} from "next";
import React from 'react';
import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend } from 'recharts';
const data = [
{
name: 'Jan',
uv: 4000,
pv: 2400,
amt: 2400,
},
{
name: 'Feb',
uv: 3000,
pv: 1398,
amt: 2210,
},
{
name: 'Mar',
uv: 2000,
pv: 9800,
amt: 2290,
},
...
{
name: 'Jul',
uv: 3490,
pv: 4300,
amt: 2100,
},
];
const MainChart: NextPage = () => {
return (
<div style={{ width: "100%" }}>
<LineChart
width={"100%"}
height={300}
data={data}
margin={{
top: 5,
right: 30,
left: 20,
bottom: 5,
}}
>
<CartesianGrid strokeDasharray="3 3" />
<XAxis dataKey="name" />
<YAxis />
<Tooltip />
<Legend />
<Line type="monotone" dataKey="pv" stroke="#8884d8" activeDot={{ r: 8 }} />
<Line type="monotone" dataKey="uv" stroke="#82ca9d" />
</LineChart>
</div>
);
};
Why?
LineChart์ width ์์ฑ์๋ px, em ๋ฑ ๋จ์๋ฅผ ํจ๊ป ์จ์ฃผ์ด์ผ ํฉ๋๋ค. ๋๋ฌธ์ width={"100%"} ์ฒ๋ผ ์ซ์ ๋์ % ๊ฐ์ ํ ๋นํ ๊ฒฝ์ฐ ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์๋ค๊ณ ํฉ๋๋ค.
๊ทธ๋์ ๋๋ฒ์งธ ๋ฐฉ๋ฒ์ผ๋ก ์๋ stytle ์์ฑ์ ์ฌ์ฉํด๋ดค๋๋ฐ์, ์์ ํ ์์ฒด๊ฐ ํ๋ฉด์ ๊ทธ๋ ค์ง์ง ์๋๋ผ๊ณ ์ ;-;
style={{ width: "100%" }}
How to solve the problem
๊ตฌ๊ธ๋ง์ ํตํด ์๋์ ๋ฐฉ๋ฒ์ ์ฐพ์์ต๋๋ค. ResponsiveContainer ๋ฅผ ์ด์ฉํ์ฌ width๋ฅผ 100%๋ก ์ค์ ํ๋ ์ฐจํธ๊ฐ ์์๊ฒ ๊ทธ๋ ค์ก์ต๋๋ค :) ๐คฉ
<ResponsiveContainer width='100%' aspect={4.0/3.0}>
...
</ResponsiveContainer>
'Framework > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React] return ์ ์ปดํฌ๋ํธ๋ฅผ ํ๋๋ก ๊ฐ์ธ๋ ์ด์ (+JSX ๋ฌธ๋ฒ) (0) | 2023.05.09 |
---|---|
[React] Material-UI (mui) theme.spacing(1) ๋จ์ ์๋ฏธ + ํฝ์ (0) | 2023.05.08 |
[React] Zustand ์ค์น ๋ฐฉ๋ฒ ๋ฐ ์์ ์ดํด๋ณด๊ธฐ (0) | 2023.04.17 |
[React] Zustand๋? (0) | 2023.04.14 |
[React] ๋ฆฌ์กํธ innerHtml ํ์ํ๊ธฐ (dangerouslySetInnerHTML)์ฌ์ฉ ์ฃผ์์ ๋ฐ ๋ณด์ ๋ฐฉ๋ฒ (0) | 2023.04.06 |