質問編集履歴

4

発火のタイミングを書き忘れました。moutedの時に呼び出しています。

2018/11/02 08:59

投稿

hasshy
hasshy

スコア102

test CHANGED
File without changes
test CHANGED
@@ -96,6 +96,12 @@
96
96
 
97
97
  }
98
98
 
99
+ mounted() {
100
+
101
+ initializeChild();
102
+
103
+ }
104
+
99
105
  }
100
106
 
101
107
  </script>

3

度々申し訳ありません。実際のコードから最低限まで絞ったので情報が抜けていました。追記します。

2018/11/02 08:59

投稿

hasshy
hasshy

スコア102

test CHANGED
File without changes
test CHANGED
@@ -56,6 +56,8 @@
56
56
 
57
57
  <script>
58
58
 
59
+ import child-component from 'child-component'
60
+
59
61
  export default {
60
62
 
61
63
  methods: {
@@ -108,7 +110,11 @@
108
110
 
109
111
  <template">
110
112
 
113
+ <div class="chilid-container">
114
+
111
- <p>子コンポーネント</p>
115
+ <p>子コンポーネント</p>
116
+
117
+ </div>
112
118
 
113
119
  </template>
114
120
 

2

誤字修正

2018/11/02 08:34

投稿

hasshy
hasshy

スコア102

test CHANGED
File without changes
test CHANGED
@@ -4,9 +4,25 @@
4
4
 
5
5
 
6
6
 
7
- 親から子コンポーネントの関数を実行することが出来ないことがわかりました。
7
+ ~~親から子コンポーネントの関数を実行することが出来ないことがわかりました。
8
8
 
9
- vueの方針として、propの状態変化でイベントを起こすことを推薦しているようなので、propの監視で対応しようと考えました。
9
+ vueの方針として、propの状態変化でイベントを起こすことを推薦しているようなので、propの監視で対応しようと考えました。~~
10
+
11
+
12
+
13
+ なんども申し訳ありません。
14
+
15
+ できる様です。
16
+
17
+
18
+
19
+ ただ、私の場合だと、というエラーが出てしまい、methodsに登録してるメソッドを読むことが出来ず、
20
+
21
+ 発火できません。
22
+
23
+
24
+
25
+ > Error in mounted hook: "TypeError: Cannot read property 'メソッド名' of undefined"
10
26
 
11
27
 
12
28
 
@@ -19,6 +35,12 @@
19
35
  ## 親コンポーネント
20
36
 
21
37
  親コンポーネントで、changeComp```changeComp```をい実行するとalertが発火する想定。
38
+
39
+
40
+
41
+ 記述ミスがあったため修正します。
42
+
43
+ 実際のコードから抜粋しているので、設定を書き忘れていた箇所がありました。
22
44
 
23
45
 
24
46
 
@@ -47,6 +69,12 @@
47
69
  }
48
70
 
49
71
  },
72
+
73
+ components {
74
+
75
+ child-component
76
+
77
+ }
50
78
 
51
79
  initializeChild() {
52
80
 
@@ -94,7 +122,7 @@
94
122
 
95
123
  watch: {
96
124
 
97
- isComp: functon(val) {
125
+ isComp: function(val) {
98
126
 
99
127
  this.reset()
100
128
 

1

pripを使う方法に変えため記事を調整します。

2018/11/02 08:19

投稿

hasshy
hasshy

スコア102

test CHANGED
@@ -1 +1 @@
1
- 【vue】親コンポーネントから子コンポーエネントメソッド呼べない
1
+ 【vue】親コンポーネントにbindしているpropwatch出来ない
test CHANGED
@@ -1,38 +1,32 @@
1
- 親コンポーネントから子コンポーネントのメソッドを実行したいのですが、子コンポーネントの指定ができず、子コンポーネントのメソッドが実行できません。
1
+ ~~親コンポーネントから子コンポーネントのメソッドを実行したいのですが、子コンポーネントの指定ができず、子コンポーネントのメソッドが実行できません。
2
+
3
+ 具体的には、子コンポーネントにrefを指定しても、undifindが帰ってきます。~~
2
4
 
3
5
 
4
6
 
5
- 具体的には、子コンポーネントにref指定しても、undifind帰ってき
7
+ 親から子コンポーネントの関数実行すること出来ないことがわかりした
8
+
9
+ vueの方針として、propの状態変化でイベントを起こすことを推薦しているようなので、propの監視で対応しようと考えました。
6
10
 
7
11
 
8
12
 
13
+ 監視に```watch```を使ってみようと考えたのですが動きません。
9
14
 
10
-
11
- ### エラー内容
12
-
13
- 下記の二つが出力れます。
15
+ propに対して、watchを起動せるにはどうしたらよいでしょうか?
14
16
 
15
17
 
16
18
 
19
+ ## 親コンポーネント
20
+
17
- > [Vue warn]: Error in created hook: "TypeError: Cannot read property 'reset' of undefined"
21
+ 親コンポーネントで、changeComp```changeComp```をい実行するとalertが発火する想定。
18
22
 
19
23
 
20
-
21
- ---
22
-
23
-
24
-
25
- > TypeError: Cannot read property 'reset' of undefined
26
-
27
-
28
-
29
- ### 親コンポーネント
30
24
 
31
25
  ```vue
32
26
 
33
27
  <template">
34
28
 
35
- <child-component ref="child"></child-component>
29
+ <child-component ref="child" v-bind:is-comp="this.$data.isComp"></child-component>
36
30
 
37
31
  </template>
38
32
 
@@ -44,6 +38,16 @@
44
38
 
45
39
  methods: {
46
40
 
41
+ data() {
42
+
43
+ return {
44
+
45
+ isComp: false
46
+
47
+ }
48
+
49
+ },
50
+
47
51
  initializeChild() {
48
52
 
49
53
  const { child } = this.$refs
@@ -51,6 +55,12 @@
51
55
  // 子コンポーネントを呼ぶ
52
56
 
53
57
  child.reset();
58
+
59
+ },
60
+
61
+ changeComp() {
62
+
63
+ this.$data.isComp = true
54
64
 
55
65
  }
56
66
 
@@ -80,6 +90,18 @@
80
90
 
81
91
  export default {
82
92
 
93
+ prop['isComp'],
94
+
95
+ watch: {
96
+
97
+ isComp: functon(val) {
98
+
99
+ this.reset()
100
+
101
+ }
102
+
103
+ }
104
+
83
105
  methods: {
84
106
 
85
107
  reset() {
@@ -102,14 +124,6 @@
102
124
 
103
125
 
104
126
 
105
- - コンポーネントをrefと同じchildにする
127
+ - propではなく、同じコンポーネントのdataの値設置してみた
106
128
 
107
- -> 変わらない。
129
+ -> 反応しない。
108
-
109
- - refに指定した名前が重複しているかもしれないので変更する。
110
-
111
- -> 結果は同じ。
112
-
113
- - refで取得した要素をconsol.logで見る
114
-
115
- -> undifindなので、そもそもrefで指定しても要素が取れていない。