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