import React from 'react';
class Menu extends React.Component {
constructor() {
super();
this.state = {
height: window.innerHeight,
width: window.innerWidth,
}
this.updateDimensions = () => {
this.setState({
height: window.innerHeight,
width: window.innerWidth
});
}
}
componentDidMount() {
window.addEventListener("resize", this.updateDimensions);
console.log('тут')
}
componentWillUnmount() {
console.log('тут1')
window.removeEventListener("resize", this.updateDimensions);
}
render() {
return(
<div></div>
)
}
}
export default Menu;componentDidMount() {
window.addEventListener("resize", this.updateDimensions);
console.log('тут')
}
по какой-то причине срабатывает только первый console.log()
import React, {useEffect, useState} from 'react';
export const useWindowSize = () => {
const [size, setSize] = useState([window.innerWidth, window.innerHeight])
const handleResize = () => {
setSize([window.innerWidth, window.innerHeight])
}
useEffect(() => {
window.addEventListener('resize', handleResize)
return () => window.removeEventListener('resize', handleResize)
}, [size])
return size
}const [width, height] = useWindowSize()