前の記事では、、友人がカスタムノードをサポートすることはできませんメッセージを残して、彼らはそれが実現可能であると考えて、エルツリーの主な用途のアイデアは、現在のノードキーとhighlight-current属性は、次のような図
<el-tree
 :data="deptTree"
 :props="defaultProps"
 :expand-on-click-node="false"
 :filter-node-method="filterNode"
 current-node-key="723fccadcf2c0f8cdbbe4ebb4d"
 highlight-current
 node-key="id"
 ref="tree"
 default-expand-all
 @node-click="handleNodeClick"
 @node-drop="handleDrop"
 draggable
 >
コードは以下の通りです。
watch: {
 // 部門ツリーを名前で絞り込む
 deptName(val) {
 this.$refs.tree.filter(val);
 },
 // ツリーの最初のノードをデフォルトでクリックする
 deptTree(val) {
 if (val) {
 this.$nextTick(() => {
			//this.$refs.tree.setCurrentKey('723fccadcf2c0f8cdbbe4ebb4d');
 document.querySelector(".is-current").firstChild.click();
 });
 }
 }
 },
いくつかの点を明確にする必要がある、現在のノードキーがオンになっているときに、ツリーノード要素のフロントエンドの生成は、判断は、選択したノードを設定するには、setCurrentKeyを使用していないことに注意してくださいを通じて、is-currentスタイルになります、テストは無効です、理由は、ページの要素は、図のようにロードされていない必要があります:
全体的な感想
背景には、クリックする必要があるノードIDを返し、それが唯一の現在のノードキーバインディングの戻り値を介して、単一の、非配列、形式の要件にすることができますし、時計で聞くことに注意する必要があり、あなたは、カスタムノードのクリックを完了することができます。
BUG
current-node-key="723fccadcf2c0f8cdbbe4ebb4d" 友人が [Vueの警告]が 表示されることを指摘した : 動的割り当てを行う際に nextTickのエラー: "TypeError:nullのプロパティ 'firstChild'を読み取ることができません " エラーは、一見したところ、私はそれが問題を引き起こしている現在のノードキーの設定でなければならないと思います。問題が解決された後、元のコードを部分的に修正しました:
	<el-tree
 	:data="deptTree"
 	:props="defaultProps"
 	:expand-on-click-node="false"
 	:filter-node-method="filterNode"
 	highlight-current
 	node-key="id"
 	ref="tree"
 	default-expand-all
 	@node-click="handleNodeClick"
 	@node-drop="handleDrop"
 	draggable
 >
JavaScript:
watch: {
 // 部門ツリーを名前で絞り込む
 deptName(val) {
 this.$refs.tree.filter(val);
 },
 // 選択されたキー
 nodeKey(val) {
 if (val) {
 this.$nextTick(() => {
 this.$refs.tree.setCurrentKey(val);
 this.$nextTick(() => {
 document.querySelector(".is-current").firstChild.click();
 });
 });
 }
 }
},
mounted() {
 // 部門ツリーのデータを取得する
 this.getTreeDept();
},
methods: {
 /** クエリー部門のドロップダウンツリー構造*/
 getTreeDept() {
 DeptAPI.treeDept().then(response => {
 this.nodeKey = '723fccadcf2c0f8cdbbe4ebb4d';
 this.deptTree = response.treeList;
 this.checkedSet = response.checkedSet;
 });
 },
}
上記のカスタムノードのデフォルトのクリックイベントを実現することができ、コアは$ nextTickの使用にあり、Vueの公式ウェブサイトの説明:遅延コールバックの実行終了後、次のDOMの更新ループで。データを変更した直後にこのメソッドを使用して、更新されたDOMを取得します。
感謝します。
ソース:




