为什么没有定义 $store?
Why is $store not defined?
我正在努力用vuejs和vuex开发一个项目,但它在组件中无法使用this.$store.state.count
。为什么?
我的配置:
"vuex": "^2.0.0"
store.js:
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
count: 12
},
mutations: {
increment (state) {
state.count++
}
},
strict: true
})
main.js:
import store from './vuex/store'
import Vue from 'vue'
new Vue({
store,
.
.
.
}).$mount('#app')
component.js:
<script>
export default {
name: 'landing-page',
created: () => {
console.log('status2')
console.log(this.$store.state.count)
}
}
</script>
错误:
Uncaught TypeError: Cannot read property '$store' of undefined
您永远不会直接编辑商店。
你总是会触发突变。
这样 (component.js):
<script>
import store from './vuex/store'
export default {
name: 'landing-page',
computed: {
counter () {
return store.state.count // get state
}
},
created: () => {
store.commit('increment') // set state
}
}
</script>
那是因为箭头函数中的 this
不是你期望的 "normal function" 中的 this
。您可以参考Arrow functions or Javascript ES6 — Arrow Functions and Lexical this
获取更多信息
我正在努力用vuejs和vuex开发一个项目,但它在组件中无法使用this.$store.state.count
。为什么?
我的配置:
"vuex": "^2.0.0"
store.js:
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
count: 12
},
mutations: {
increment (state) {
state.count++
}
},
strict: true
})
main.js:
import store from './vuex/store'
import Vue from 'vue'
new Vue({
store,
.
.
.
}).$mount('#app')
component.js:
<script>
export default {
name: 'landing-page',
created: () => {
console.log('status2')
console.log(this.$store.state.count)
}
}
</script>
错误:
Uncaught TypeError: Cannot read property '$store' of undefined
您永远不会直接编辑商店。
你总是会触发突变。
这样 (component.js):
<script>
import store from './vuex/store'
export default {
name: 'landing-page',
computed: {
counter () {
return store.state.count // get state
}
},
created: () => {
store.commit('increment') // set state
}
}
</script>
那是因为箭头函数中的 this
不是你期望的 "normal function" 中的 this
。您可以参考Arrow functions or Javascript ES6 — Arrow Functions and Lexical this
获取更多信息