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

質問編集履歴

4

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

2018/11/02 08:59

投稿

hasshy
hasshy

スコア102

title CHANGED
File without changes
body CHANGED
@@ -47,6 +47,9 @@
47
47
  this.$data.isComp = true
48
48
  }
49
49
  }
50
+ mounted() {
51
+ initializeChild();
52
+ }
50
53
  }
51
54
  </script>
52
55
  ```

3

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

2018/11/02 08:59

投稿

hasshy
hasshy

スコア102

title CHANGED
File without changes
body CHANGED
@@ -27,6 +27,7 @@
27
27
  </template>
28
28
 
29
29
  <script>
30
+ import child-component from 'child-component'
30
31
  export default {
31
32
  methods: {
32
33
  data() {
@@ -53,7 +54,9 @@
53
54
  ### 子コンポーネント
54
55
  ```vue
55
56
  <template">
57
+ <div class="chilid-container">
56
- <p>子コンポーネント</p>
58
+ <p>子コンポーネント</p>
59
+ </div>
57
60
  </template>
58
61
 
59
62
  <script>

2

誤字修正

2018/11/02 08:34

投稿

hasshy
hasshy

スコア102

title CHANGED
File without changes
body CHANGED
@@ -1,15 +1,26 @@
1
1
  ~~親コンポーネントから子コンポーネントのメソッドを実行したいのですが、子コンポーネントの指定ができず、子コンポーネントのメソッドが実行できません。
2
2
  具体的には、子コンポーネントにrefを指定しても、undifindが帰ってきます。~~
3
3
 
4
- 親から子コンポーネントの関数を実行することが出来ないことがわかりました。
4
+ ~~親から子コンポーネントの関数を実行することが出来ないことがわかりました。
5
- vueの方針として、propの状態変化でイベントを起こすことを推薦しているようなので、propの監視で対応しようと考えました。
5
+ vueの方針として、propの状態変化でイベントを起こすことを推薦しているようなので、propの監視で対応しようと考えました。~~
6
6
 
7
+ なんども申し訳ありません。
8
+ できる様です。
9
+
10
+ ただ、私の場合だと、というエラーが出てしまい、methodsに登録してるメソッドを読むことが出来ず、
11
+ 発火できません。
12
+
13
+ > Error in mounted hook: "TypeError: Cannot read property 'メソッド名' of undefined"
14
+
7
15
  監視に```watch```を使ってみようと考えたのですが動きません。
8
16
  propに対して、watchを起動させるにはどうしたらよいでしょうか?
9
17
 
10
18
  ## 親コンポーネント
11
19
  親コンポーネントで、changeComp```changeComp```をい実行するとalertが発火する想定。
12
20
 
21
+ 記述ミスがあったため修正します。
22
+ 実際のコードから抜粋しているので、設定を書き忘れていた箇所がありました。
23
+
13
24
  ```vue
14
25
  <template">
15
26
  <child-component ref="child" v-bind:is-comp="this.$data.isComp"></child-component>
@@ -23,6 +34,9 @@
23
34
  isComp: false
24
35
  }
25
36
  },
37
+ components {
38
+ child-component
39
+ }
26
40
  initializeChild() {
27
41
  const { child } = this.$refs
28
42
  // 子コンポーネントを呼ぶ
@@ -46,7 +60,7 @@
46
60
  export default {
47
61
  prop['isComp'],
48
62
  watch: {
49
- isComp: functon(val) {
63
+ isComp: function(val) {
50
64
  this.reset()
51
65
  }
52
66
  }

1

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

2018/11/02 08:19

投稿

hasshy
hasshy

スコア102

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