前提・実現したいこと
NextJS[TailWindCSS利用]にて、SPAを作成しています。
解決したい点は、現在ヘッダーメニューを作成し、ハンバーガーメニューを実装する為、コンポーネントを細かく分けて開発していますが、Reactのstate機能を使い、ハンバーガーメニューをクリックすると、onClickでイベントを着火、stateをfalse=trueと反転させて表示を変える内容につき、三項演算子でコーディングしています。
発生している問題・エラーメッセージ
下記コードのような実装をしています。
このコンポーネントは、ハンバーガーメニューの「2本線」と「✕」だけを再現する部品としていて、他に親コンポーネントがいるので、"props.setOpenMenu”を用いています。
コードの可視性を良くするため、あえてここでは"const clickValue"としてpropsの値を設定しました。
ハンバーガーメニューをクリックすることでイベントを着火させるのですが、ブラウザのdevツール(Reactのdevツール)でstateを確認すると、false=trueの変化は確認できるのですが、三項演算子がうまく機能していないようで、ハンバーガーメニューの表示が変化されません。
三項演算子の記法が間違えているのか、そもそもの実装方法に難があるのか、解決策やヒントがあればご教示ください。
該当のソースコード
react
1function Hamburger (props) { 2 const clickValue = () => { 3 props.setOpenMenu(!"") 4 }; 5 6 return ( 7 <div onClick={clickValue}> 8 {clickValue ? ( 9 <div> 10 <span className="absolute h-0.5 w-5 bg-black"></span> 11 <span className="absolute mt-1 h-0.5 w-5 bg-black"></span> 12 </div> 13 ):( 14 <div> 15 <span className="absolute transform rotate-45 mt-0.5 h-0.5 w-5 bg-black"></span> 16 <span className="absolute transform -rotate-45 mt-0.5 h-0.5 w-5 bg-black"></span> 17 </div> 18 ) 19 } 20 </div> 21 ) 22} 23 24export default Hamburger
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
- NextJS (React)
- TypeScript
- TailWindCSS

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/30 23:23