我尝试访问React.js组件内部的window对象,因为我想创建一个状态,该状态保存window对象的动态innerWidth值。当页面刷新时,我能够使其工作,但当我使用dev工具动态调整页面大小时,它不能工作。
下面是适用于刷新的代码:
const About = () => {
const [bioType, setBioType] = useState("");
const truncateText = () =>
window.innerWidth > 1024 ? setBioType("desktop") : setBioType("mobile");
useEffect(() => {
truncateText();
});
return ({
bioType === 'desktop' ? ... : ....
})
}
但是,当我使用开发人员工具调整网页大小时,它不起作用。有人能给予我一个提示吗?谢谢。
1条答案
按热度按时间rqqzpn5f1#
更改窗口宽度不会导致React对更改做出React并重新呈现。您需要使用事件处理程序来侦听resize event、使用
ResizeObserver
或使用MatchMedia
并侦听更改。MatchMedia
示例: