Это то, что вы пытаетесь достичь? Песочница
Я просто добавил некоторую логику в вашу функцию toggleBtmHeight
, чтобы узнать, какой должна быть высота нижней панели после изменения размера.Когда вы изменяете размер панели, обратный вызов onChange
передает вам высоту основной (верхней) панели.Вам нужно использовать maxHeight - topPaneHeight = bottomPaneHeight
, чтобы выяснить, какой должна быть высота нижней панели:
toggleBtmHeight(topPaneHeight) {
const maxHeight = 1000;
const padding = 225;
const btmPaneHeight = maxHeight - topPaneHeight - padding;
this.setState({ btmHeight: btmPaneHeight + "px" });
}
Что касается того, как справиться с изменчивостью, трудно сказать, не видя ее в полном контекстеваше приложение, но я думаю, что когда вы обновляете состояние, оно перерисовывает кучу компонентов, вызывая задержку.Я бы хотел добавить shouldComponentUpdate
к вашим компонентам, чтобы помочь управлять моментом их рендеринга.