0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【React】RechartsのResponsiveContainerでウィンドウを小さくするときだけwidthが再計算されない問題について

Last updated at Posted at 2022-06-08

発生した問題

  • ReactライブラリであるRechartsのResponsiveContainerコンポーネントを使用。
  • ブラウザ幅に応じてチャートの大きさを変更したい。
  • ブラウザのウィンドウを大きくするときは再計算されるが、ウィンドウを小さくする時は再計算されない。

こんな感じ

anime.gif

※いま、趣味で作っているWebサービスです。

原因

こちらのissueで同問題が報告されていました。

フレックスボックスを使い、ResponsiveContainerの親要素がフレックスアイテムになると生じるとのこと。

どうやら、ResponsiveContainerの親要素のwidthが明示的に指定されていないと、Rechartsの再計算ができないみたい。

解決策

ResponsiveContainerの親要素にwidth:0;を追加する。
※上記のgif画像参考

//Material-ui使用
<Container maxWidth="lg" sx={{ mt: 6, display: 'flex' }}>
  <Box>
    <Formula />
  </Box>
  <Box sx={{ flexGrow: 1, ml: 6 ,width:0}}>{/*widthを追加 */}
    <Chart />
  </Box>
</Container>

なお、issueを解決する上で紹介されていたstackoverflowは下記。
https://stackoverflow.com/questions/7985021/css-flexbox-issue-why-is-the-width-of-my-flexchildren-affected-by-their-content

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?