@gsdev99

Как правильно сделать Responsive svg (D3.js)?

Все привет, подскажите, пожалуйста, как правильно сделать Responsive svg?
Ниже моя реализация, но я думаю, что есть подход более правильный.
https://codepen.io/gsdev99/pen/QWwmeKp
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ответы на вопрос 1
profesor08
@profesor08 Куратор тега JavaScript
На ресайз тебе не нужен throttle, убери его и будет работать четче.

Вот с такой штукой плохо кончишь, если вдруг у тебя в компоненте появится какой-то стейт. А он у тебя есть. Потому что при каждом изменении стейта, ты будешь добавлять дополнительный обработчик resize к window. Либо как-то удаляй предыдущие обработчики, либо делай иначе, например добавив флаг, который будет сигнализировать, чтоб обработчик уже висит, и добавлять его еще раз не нужно.
useEffect(() => {
    window.addEventListener('resize', onResize)
  }, [])


Лично я бы вынес это дело в отдельный store на mobx, где будет обновляться ширина, а компонент будет обновляться когда надо.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы