質問するログイン新規登録

質問編集履歴

2

実装の変更

2019/10/16 22:56

投稿

sanezane
sanezane

スコア91

title CHANGED
@@ -1,1 +1,1 @@
1
- javascript(Nuxt.js)でのツリービューの子要素の展開
1
+ javascript(Nuxt.js)でのツリービューの子要素の展開でsetTimeout以外の選択肢
body CHANGED
@@ -1,12 +1,13 @@
1
1
  # 発生事象
2
- ツリービュー展開時の遅延読み込みでデータが反映されない
2
+ ツリービュー展開時の遅延読み込みでsetTimeoutを使わないと展開されない
3
3
 
4
4
  # 使用技術
5
5
  nuxt.js:2.8.1
6
6
  ツリービュー自体:grapecity製のJavaScriptコントロール部品のWijmoを使用(@grapecity/wijmo.vue2.all": "5.20192.624")
7
7
 
8
8
  # 現状の実装と画像
9
- 以下のようにlazy-load-functionプロパティという展開されたときのプロパティに対し関数(load)を設定しノードが展開されたときにデータを読み込んでいる
9
+ 以下のようにlazy-load-functionプロパティという展開されたときのプロパティに対し関数(load)を設定しノードが展開されたときにデータを読み込んでいる
10
+ コメントアウト部はwatchオプションでデータ取得フラグを監視してツリービューを展開させようとした痕跡だが、callbackが呼べなくて断念。
10
11
  ```
11
12
  <template>
12
13
  <div class="container-fluid">
@@ -25,21 +26,23 @@
25
26
  //親コンポーネントのloadアクションがデータの取得と、取得したデータをmutationへ飛ばしてstateへ反映する処理をやっている
26
27
  await this.$emit('load', node)
27
28
 
28
- //最初ここで以下ように処理を完結させようとしたが、データ取得できないうちに以下の処理に入ってきてしまっていたので監視用のWatchオプション使うこと
29
+ //問題箇所(setTimeoutでデータ取得を待ってからcallback呼ぶことで展開している
30
+ setTimeout(function() {
29
- // Node = this.selectorg
31
+ let result = this.selector
30
- // callback(Node)
32
+ callback(result);
33
+ }, 1000);
31
34
 
32
35
  }
33
36
 
34
37
 
35
38
  //上記のデータ取得処理($emit)の中でデータを取得したら`loadingselectorg`の値を変更してここに飛ばすようにしている
36
- @Watch('loadingselectorg')
39
+ //@Watch('loadingselectorg')
37
- loadValueInto(Node, callback) {
40
+ // loadValueInto(Node, callback) {
38
- if (this.loadingselectorg) {
41
+ // if (this.loadingselectorg) {
39
- Node = this.selectorg
42
+ // Node = this.selectorg
40
43
  //ここでload関数におけるcallback(Node)相当の処理が必要?
44
+ // }
41
- }
45
+ // }
42
- }
43
46
  </script>
44
47
  ```
45
48
 

1

誤字修正

2019/10/16 22:56

投稿

sanezane
sanezane

スコア91

title CHANGED
File without changes
body CHANGED
@@ -51,10 +51,10 @@
51
51
  async load() {
52
52
  alert('containerからloadをdispachします')
53
53
  this.loadingselectorg = false
54
- await this.$store.dispatch('jutree/selectorg', this.treeData).catch(() => {
54
+ await this.$store.dispatch('/アクション', 現在のノード情報).catch(() => {
55
55
  this.$notify({
56
56
  title: '失敗',
57
- message: '自組織情報を取得できませんでした',
57
+ message: '情報を取得できませんでした',
58
58
  type: 'warning'
59
59
  })
60
60
  })