Проблема с получением компонента HighchartsReact для правильного заполнения контейнера

У меня есть 3-компонентное приложение для реагирования, которое выглядит красиво, с двумя диаграммами реагирования на акции вверху слева и вверху справа, которые делят пространство равномерно над красивой сеткой. как показано ниже.

введите описание изображения здесь

Вот код моей панели инструментов, где вы можете увидеть, как два идентичных компонента диаграммы вставляются в свои блоки div.

import React from "react";


import AllocationPanel from "./panels/AllocationPanel";
import PerformancePanel from "./panels/PerformancePanel";
/*import PositionsPanel from "./panels/PositionsPanel";*/
import AgPositionPanel from "./panels/AgPositionPanel";


export default function Dashboard() {
return (
<div className="panels">
  <div className="panel-info">
    
  </div>
  <div className="panel-allocation" >
    <PerformancePanel />
  </div>
  <div className="panel-balance">
    <PerformancePanel />
  </div>
  <div className="panel-positions">
    <AgPositionPanel />
  </div>
</div>
 )
}

Поскольку я так люблю диаграммы высоких значений, я решил заменить две диаграммы реакции двумя диаграммами высоких частот. Вот код компонента ReactHighcharts, который я использовал для замены двух исходных диаграмм. Как видите, очень простой график.

import React, {Component} from 'react'
import Highcharts from 'highcharts'
import HighchartsReact from 'highcharts-react-official'

const options = {
 title: {
   text: 'highcharts-react-official'
},
  series: [{
  data: [1, 5, 3, 4]
}]
}

export default class AllocationPanel extends Component{
constructor(){
super();
this.chartComponent = React.createRef();

}
componentDidMount(){
this.chartComponent.current.chart.reflow();
}
render() {
 return(
  <HighchartsReact
    highcharts={Highcharts}
    options={options}
    ref={this.chartComponent}
  />
);
}
}

Когда я заменяю компонент ReactHighCharts выше, панель инструментов выглядит так: высокие диаграммы неравны по размеру, не заполняют свои блоки div и выглядят почти так, что на обоих концах почти отсутствуют пробелы.

введите описание изображения здесь

Вы хоть представляете, что заставляет Highcharts испортить формат / макет приложения и не соответствовать равномерно, как React Charts на верхнем фото? Я пробовал исправления перекомпоновки, исправления css и, похоже, не могу понять, почему Highcharts все сбрасывает.

Если у вас есть идеи, дайте мне знать. Я исчерпал другие сообщения, поиски в Интернете и, кажется, не могу заставить два высоких графика равномерно разделить окно и изменить размер вместе с окном. Благодарность!

P.S. Вот CSS для трех контейнеров div, который поможет. Я чувствую, что упускаю что-то простое.

.panels {
   display: grid;
  grid-gap: 10px;
  grid-template-columns: 1px auto auto;
  grid-template-rows: auto auto;
  overflow:hidden;
}
.panel-info {
  grid-row: span 2;
}
.panel-allocation {
  overflow:hidden ;
}
.panel-balance {
  overflow:hidden ;
}
.panel-positions {
grid-column: span 2;
}
.panels > div {
  /* border: 1px solid black; */
}

@media (max-width: 750px) {
.panels {
  grid-template-columns: 1px auto;
  grid-template-rows: auto auto auto;
 }
.panel-positions {
  grid-column: span 2;
  }
 }

 @media (max-width: 750px) {
 .panels {
    grid-template-columns: auto;
  }
.panel-positions {
  grid-column: span 1;
  }
 }

person Ryland Mathews    schedule 15.08.2020    source источник
comment
после долгих исследований это как-то связано с тем, что highcharts не подчиняются display: grid в родительском div .panels CSS. исходные диаграммы реагирования помещаются в дисплей: сетка отлично. Я не могу понять, почему highcharts расширяет левую часть сетки.   -  person Ryland Mathews    schedule 15.08.2020


Ответы (1)


ответ был прост. размер highchart давил на автоматический столбец из display: grid. изменение CSS сетки на: сделал макет именно таким, как я хотел.

.panels {
display: grid;
grid-gap: 1px;
grid-template-columns: 0px 50% 50%;
grid-template-rows: auto auto;
overflow:hidden;
}
person Ryland Mathews    schedule 15.08.2020