前提・実現したいこと
material-ui のツリーコンポーネントで
ツリー表示時に選択されている値まで階層が展開されているようなデザインにしたいです。
発生している問題・エラーメッセージ
defaultExpanded の値に 階層をスラッシュ区切り指定する事まではわかり
値を入れてみたのですが上手く動作しませんでした。
試しに defaultExpanded=["Singlets_FSC", "Singlets_FSC/Singlets_SSC"] のように直接入れたときは
その階層まで上手く展開しました。
該当のソースコード
↓defaultExpanded に入れる値作成の処理
javascript
1useEffect(() => { 2 setRadioValue(defaultData); 3 4 let oneIdx = defaultData.split("/"); 5 let openTree = [oneIdx[0]]; 6 7 //下記処理説明 [1, 2, 3] → [1, 1/2, 1/2/3] のような処理をしている 8 for (let i = 1; i < oneIdx.length; i++) { 9 let arr1 = []; 10 arr1.push(openTree[i - 1]); 11 arr1.push(oneIdx[i]); 12 let arr2 = arr1.join("/"); 13 openTree.push(arr2); 14 } 15 openTree.pop(); 16 17 setExpandedValue(openTree); 18 }, [defaultData]);
↓描画の処理
javascript
1if (defaultData) { 2 console.log(expandedValue); //送付ログ245行目 3 console.log(["Singlets_FSC", "Singlets_FSC/Singlets_SSC"]); 4 console.log(typeof (expandedValue)); 5 console.log(typeof (["Singlets_FSC", "Singlets_FSC/Singlets_SSC"])); 6 var toString = Object.prototype.toString; 7 console.log(toString.call(expandedValue)); 8 console.log(toString.call(["Singlets_FSC", "Singlets_FSC/Singlets_SSC"])); 9 if (expandedValue == ["Singlets_FSC", "Singlets_FSC/Singlets_SSC"]) { 10 console.log("型チェック true"); 11 } 12 13 if (!data || !Object.keys(data).length) { 14 console.log(expandedValue); 15 return <div className={classes.root}> 16 <TreeView defaultExpanded={expandedValue} /> 17 {/* <TreeView defaultExpanded={["Singlets_FSC", "Singlets_FSC/Singlets_SSC"]} /> */} 18 </div> 19 } 20 21 console.log(expandedValue); 22 23 return ( 24 <div className={classes.root}> 25 <TreeView defaultExpanded={expandedValue}> 26 {/* <TreeView defaultExpanded={["Singlets_FSC", "Singlets_FSC/Singlets_SSC"]}> */} 27 { 28 makeTree(Object.keys(data)[0], 29 data[Object.keys(data)[0]], 30 Object.keys(data)[0]) 31 } 32 </TreeView> 33 </div> 34 ); 35 }
試したこと
それぞれの値の確認と型チェックを行いましたがログのように同じ値、同じ型となっていました。
ただ、型チェック後の == の比較が通らないという事に気づき、ここが原因となっていると予想は出来ているのですが、何故通らないのかがわからなかったので質問させて頂きました。
また、それが原因ではない場合は何が悪いのか教えて頂きたいです。
どなたか未熟な自分にご教示をお願いしたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。