反应js";TypeError:无法读取属性';风格';“无效”的定义;还有许多javascript错误

反应js";TypeError:无法读取属性';风格';“无效”的定义;还有许多javascript错误,javascript,reactjs,Javascript,Reactjs,我对reacts javascript部分有问题,有什么可以永久解决这个问题的吗 function Header() { function openNav() { document.getElementById('mySidenav').style.width = "250px"; } function closeNav() { document.getElementById('mySid

我对reacts javascript部分有问题,有什么可以永久解决这个问题的吗

function Header() {
    
    function openNav() {
        document.getElementById('mySidenav').style.width = "250px";
      }
      
      function closeNav() {
        document.getElementById('mySidenav').style.width = "0";
      }
    return (
        <nav className="Header">
            <img className="logo" src="./assets/logo.png" alt=""/>
            <div id="mySidenav" class="sidenav">
            <a href="javascript:void(0)" className="closebtn" onClick={closeNav()}>&times;</a>
            <a href="#">About</a>
            <a href="#">Services</a>
            <a href="#">Clients</a>
            <a href="#">Contact</a>
            </div>
        </nav>
    )
}

export default Header
函数头(){
函数openNav(){
document.getElementById('mySidenav').style.width=“250px”;
}
函数closeNav(){
document.getElementById('mySidenav').style.width=“0”;
}
返回(
)
}
导出默认标题

ı只是想制作一个更大的菜单,发生了这种情况,请帮助。

您过早地调用了
closeNav()

问题在于:

<a href="javascript:void(0)" className="closebtn" onClick={closeNav()}>&times;</a>

这不是很好的编码风格。考虑使用REFS引用组件而不是<代码> GETelEnMyByID,并使用内联样式和状态来更新宽度,而不是直接操作HTML元素。没有必要显式操作这样的样式。不要手动更改DOM元素。为什么要使用react呢?dylan非常感谢你救了我的命谢谢如果这回答了你的问题,那么将答案标记为已接受。无需在评论中表示感谢:)使用
href=“javascript:void(0)”
意味着应该使用
按钮也不需要做其他的功能。只需将它传入
onClick={closeNav}
<a href="javascript:void(0)" className="closebtn" onClick={() => closeNav()}>&times;</a>