Я решил использовать перехватчики React для своего компонента, используя прослушиватель событий windom width и resize. Проблема в том, что я не могу получить доступ к текущему значению, которое мне нужно. Я получаю вложенное значение, которое было установлено при добавлении прослушивателя событий.
Передача функции в функцию установки значения не является для меня решением, потому что она заставляет отрисовывать и нарушает другие мои функции.
Я прилагаю минималистичный пример, чтобы показать основную проблему:
import React, { Component, useState, useEffect } from 'react';
import { render } from 'react-dom';
const App = () => {
const [width, setWidth] = useState(0);
const resize = () => {
console.log("width:", width); // it's always 0 even after many updates
setWidth(window.innerWidth);
};
useEffect(() => {
resize();
window.addEventListener("resize", resize);
return () => window.removeEventListener("resize", resize);
}, []);
return <div>{width}</div>;
}
render(<App />, document.getElementById('root'));
Пожалуйста, о помощи.