質問編集履歴
7
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,8 +1,11 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
|
+
BookInfoコンポーネントのonclickメソッド実行する時のエラーを解決したい
|
4
|
+
|
5
|
+
|
3
6
|
下記エラーが発生している原因を知りたいです。
|
4
7
|
BookInfoコンポーネントのonclickメソッド実行時に下記エラーが発生してしまいます。
|
5
|
-
どなたか解決方法分かる
|
8
|
+
どなたか解決方法分かる方見えましたらご教授頂きたく思います。
|
6
9
|
|
7
10
|
そのた必要な情報あれば、コメント頂ければと思います。
|
8
11
|
|
6
誤記
title
CHANGED
File without changes
|
body
CHANGED
@@ -49,7 +49,7 @@
|
|
49
49
|
})
|
50
50
|
```
|
51
51
|
|
52
|
-
##
|
52
|
+
##main.js
|
53
53
|
```
|
54
54
|
import Vue from 'vue/dist/vue.esm.js'
|
55
55
|
// import Vue from 'vue'
|
5
簡略化
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
Vue.js x Rails
|
1
|
+
Vue.js x Rails コンポーネントからアクションを参照出来ない Cannot read property 'dispatch' of undefined"
|
body
CHANGED
File without changes
|
4
タイトル 変更
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
Vue.js x Rails ストアからアクションを引っ張れない
|
1
|
+
Vue.js x Rails ストアからアクションを引っ張れない Cannot read property 'dispatch' of undefined"
|
body
CHANGED
File without changes
|
3
簡略化
title
CHANGED
File without changes
|
body
CHANGED
@@ -23,34 +23,15 @@
|
|
23
23
|
import Vue from 'vue'
|
24
24
|
import Vuex from 'vuex'
|
25
25
|
import createPersistedState from 'vuex-persistedstate'
|
26
|
-
import { UPDATE_CURRENT
|
26
|
+
import { UPDATE_CURRENT} from './mutation-types'
|
27
27
|
|
28
28
|
Vue.use(Vuex)
|
29
29
|
|
30
30
|
export default new Vuex.Store({
|
31
|
-
strict: true, //厳密性 本番環境では、消しておく
|
32
31
|
state: {
|
33
|
-
books:[], //レビューと書籍の情報を格納する
|
34
32
|
current: null
|
35
33
|
},
|
36
34
|
getters:{
|
37
|
-
bookCount(state){
|
38
|
-
return state.books.length
|
39
|
-
},
|
40
|
-
allBooks(state){
|
41
|
-
return state.books
|
42
|
-
},
|
43
|
-
getRangeByPage(state){ //指定されたページのレビュー情報を引数ページ番号で返すメソッドを返すメソッド
|
44
|
-
return page =>{
|
45
|
-
const SIZE = 3
|
46
|
-
return state.books.slice((page -1)) * SIZE, (page -1) * SIZE + SIZE
|
47
|
-
}
|
48
|
-
},
|
49
|
-
getBookById(state){ //引数idでそのidのレビューを返すメソッドを返すメソッド
|
50
|
-
return id =>{
|
51
|
-
return state.books.find(book => book.id === id)
|
52
|
-
}
|
53
|
-
},
|
54
35
|
current(state){ //現在編集中の書籍
|
55
36
|
return state.current
|
56
37
|
}
|
@@ -59,27 +40,12 @@
|
|
59
40
|
[UPDATE_CURRENT](state, payload){ //編集中の書籍(current)を更新
|
60
41
|
state.current = payload
|
61
42
|
},
|
62
|
-
[UPDATE_BOOK](state, payload){ //レビュー情報を更新
|
63
|
-
let book = this.getters.getBookById(payload.id) //id値(payload)で既存のレビュー検索
|
64
|
-
if (book) {
|
65
|
-
Object.assign(book, payload) //既存のレビュー情報がある場合は、payloadで上書き
|
66
|
-
} else {
|
67
|
-
state.books.push(payload) //ない場合は、新規としてbooksステートに追加
|
68
|
-
}
|
69
|
-
},
|
70
43
|
},
|
71
44
|
actions:{
|
72
45
|
[UPDATE_CURRENT]({ commit }, payload){
|
73
46
|
commit(UPDATE_CURRENT,payload)
|
74
47
|
},
|
75
|
-
[UPDATE_BOOK]({ commit }, payload){
|
76
|
-
commit(UPDATE_BOOK,payload)
|
77
|
-
},
|
78
48
|
},
|
79
|
-
plugins: [createPersistedState({ //ストレージ保存のためのプラグイン有効化
|
80
|
-
key: 'reading-recoder',
|
81
|
-
storage: localStorage
|
82
|
-
})]
|
83
49
|
})
|
84
50
|
```
|
85
51
|
|
@@ -124,9 +90,7 @@
|
|
124
90
|
</template>
|
125
91
|
|
126
92
|
<script>
|
127
|
-
|
93
|
+
import { mapActions } from 'vuex'
|
128
|
-
import {mapGetters, mapActions} from 'vuex/dist/vuex.esm.js'
|
129
|
-
// import { UPDATE_CURRENT } from '@/mutation-types'
|
130
94
|
import { UPDATE_CURRENT } from './mutation-types'
|
131
95
|
|
132
96
|
export default {
|
2
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -8,6 +8,9 @@
|
|
8
8
|
|
9
9
|
|
10
10
|
### 発生している問題・エラーメッセージ
|
11
|
+
```
|
12
|
+
Error in v-on handler: "TypeError: Cannot read property 'dispatch' of undefined"
|
13
|
+
```
|
11
14
|
|
12
15
|
```
|
13
16
|
TypeError: Cannot read property 'dispatch' of undefined
|
1
誤字
title
CHANGED
File without changes
|
body
CHANGED
@@ -28,13 +28,13 @@
|
|
28
28
|
strict: true, //厳密性 本番環境では、消しておく
|
29
29
|
state: {
|
30
30
|
books:[], //レビューと書籍の情報を格納する
|
31
|
-
current: null
|
31
|
+
current: null
|
32
32
|
},
|
33
|
-
getters:{
|
33
|
+
getters:{
|
34
|
-
bookCount(state){
|
34
|
+
bookCount(state){
|
35
|
-
return state.books.length
|
35
|
+
return state.books.length
|
36
36
|
},
|
37
|
-
allBooks(state){
|
37
|
+
allBooks(state){
|
38
38
|
return state.books
|
39
39
|
},
|
40
40
|
getRangeByPage(state){ //指定されたページのレビュー情報を引数ページ番号で返すメソッドを返すメソッド
|