画像の矢印を押したらツリーを閉じるようにしたい。
右のログは矢印を押したときの変数のログです。
クリックするごとにきちんと値が変わっています。
###試したこと
変数の宣言の位置をif文の外に出してみたりvarに変えてみたりと試したが動きませんでした。
変数の値をfalseにしてみたところ、以下の画像のようにツリーが閉じたので、変数の更新が読み取れていないのかなと思っています。
#該当のコード
react
1type Props = { 2 trees: any[] 3 4} 5const FolderTree: React.FC<Props> = ({ trees }) => { 6 return ( 7 <div className="tree"> 8 <ul > 9 { 10 trees.map((tree, index) => { 11 //console.log(tree.children) 12 if (tree.children === undefined) { 13 //let open = true; 14 return ( 15 <li key={index}> 16 <i className="fas fa-chevron-right"></i> 17 <i className="fas fa-folder"></i> 18 {tree.name} 19 </li> 20 ) 21 } else { 22 let open = false; //変数 23 return ( 24 <div className="children"> 25 26 <li key={index}> 27 <i className="fas fa-chevron-right" 28 onClick={() => { 29 open = !open 30 console.log(tree.name + ":" + open); 31 }} 32 style={{ 33 cursor: "pointer", 34 transform: (!open ? "" : "rotate(90deg)"), 35 }} 36 > 37 </i> 38 <i className="fas fa-folder"></i> 39 {tree.name}:{open} //ここのopenの値は表示されない 40 </li> 41 { 42 open && //ここのopenで問題が発生していると思われる。 43 <FolderTree trees={tree.children} /> 44 } 45 </div> 46 47 ) 48 } 49 50 })} 51 </ul> 52 </div> 53 ) 54}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。