Я столкнулся с проблемой в Хайстоке (Highcharts).Если для свойства обрезки установлено значение true (значение по умолчанию) для серии, существует случай, когда область обрезки не обновляется / пересчитывается.
Ошибка появляется каждый раз, когда мы создаем новую ось с высотой A, меняем ее высоту наB, удалите его и создайте новый с высотой A снова с тем же идентификатором.Созданная ось обрезается с помощью clipPath удаленной оси.
Проще говоря, логика выглядит следующим образом:
chart.addAxis({..., id: Y_AXIS_TEST_ID, height: '100%'});
chart.addSeries({...});
chart.get(Y_AXIS_TEST_ID).update({height: '80%'});
chart.get(Y_AXIS_TEST_ID).remove();
chart.addAxis({..., id: Y_AXIS_TEST_ID, height: '100%'});
chart.addSeries({...});
Полный пример JSFiddle
ВоспроизвестиЧтобы решить проблему, выполните следующие действия:
- Нажмите кнопку «Добавить ось с данными».
- Нажмите кнопку «Изменить высоту».
- Нажмите «Удалить»кнопка.
- Снова нажмите кнопку «Добавить ось с данными».
Результат: ряд внутри оси обрезается с помощью clipPath, сгенерированного для высоты оси 80%;Ожидается: новая ось с данными, как на стр. 1
. В этом случае проблему можно исправить, если мы генерируем новый идентификатор каждый раз, когда создаем ось.
Нажмите на кнопку «Удалить»./ или обновите JSFiddle Установите флажок «генерировать новый идентификатор каждый раз». Выполните шаги 1 - 4.
Есть ли случаи, чтобы избежать создания кластерановый идентификатор каждый раз, когда создается ось?