実現したいこと
className="humberger"をクリックしたときに、className="header"にclassName="active"を追加、削除する。
発生しているエラーメッセージ
Header.js:14
1 at toggle (Header.js:14:1) 2 at HTMLUnknownElement.callCallback (react-dom.development.js:4164:1) 3 at Object.invokeGuardedCallbackDev (react-dom.development.js:4213:1) 4 at invokeGuardedCallback (react-dom.development.js:4277:1) 5 at invokeGuardedCallbackAndCatchFirstError (react-dom.development.js:4291:1) 6 at executeDispatch (react-dom.development.js:9041:1) 7 at processDispatchQueueItemsInOrder (react-dom.development.js:9073:1) 8 at processDispatchQueue (react-dom.development.js:9086:1) 9 at dispatchEventsForPlugins (react-dom.development.js:9097:1) 10 at react-dom.development.js:9288:1
該当のソースコード
Header.js
1import React from "react"; 2import "./Header.css"; 3import { Link as Scroll } from "react-scroll"; 4import { useState } from "react"; 5 6const Header = () => { 7 const [isNavOpen, setIsNavOpen] = useState(false); 8 let header = document.querySelector(".header"); 9 const toggle = () => { 10 if (isNavOpen) { 11 header.classList.remove("active"); 12 setIsNavOpen(false); 13 } else { 14 header.classList.add("active"); 15 setIsNavOpen(true); 16 } 17 }; 18 19 return ( 20 <div className="header"> 21 <nav> 22 <ul> 23 <li> 24 <Scroll to="about" smooth="true" duration={600} offset={-60}> 25 ABOUT 26 </Scroll> 27 </li> 28 <li> 29 <Scroll to="skill" smooth="true" duration={600} offset={-60}> 30 SKILL 31 </Scroll> 32 </li> 33 <li> 34 <Scroll to="portfolio" smooth="true" duration={600} offset={-60}> 35 PORTFOLIO 36 </Scroll> 37 </li> 38 </ul> 39 </nav> 40 41 <div className="hamburger" onClick={toggle}> 42 <span></span> 43 <span></span> 44 <span></span> 45 </div> 46 </div> 47 ); 48}; 49 50export default Header;
エラーメッセージに抜けがありました。
1行目 Uncaught TypeError: Cannot read properties of null (reading 'classList')
at toggle (Header.js:14:1)~
回答1件
あなたの回答
tips
プレビュー