【发布时间】:2020-04-13 03:08:33
【问题描述】:
我正在尝试在 React 中构建一个导航栏,它有一个子组件 Menu,它根据菜单在其中呈现的 div 的宽度呈现两个不同版本的菜单之一。还有一个徽标和公司名称在导航栏中占据相对恒定的宽度,并且保存菜单的 div 会随着屏幕宽度和纵横比的变化而增长和缩小。无论如何,那个增长和缩小的 div 我给了一个id="menu-section",以便我可以使用document.getElementById("menu-section").offsetWidth; 来获取可用宽度并在决定要呈现哪个版本的菜单的函数中使用它。问题是我得到了TypeError: Cannot read property 'offsetWidth' of null。为什么document.getElementById("menu-section") 找不到 div 并返回 null?
function Menu(props) {
let availableWidthPx = document.getElementById("menu-section").offsetWidth;
if (availableWidthPx > 600) {
return expanded version;
}
return collapsed version
}
function Navbar(props) {
render(){
return (
<nav className="navbar">
...
<div id="menu-section">
<Menu />
</div>
</nav>
)
}
}
export default Navbar;
【问题讨论】:
标签: javascript reactjs jsx