我正在努力开发一个带有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
答案 0 :(得分:0)
您永远不会直接编辑商店。
你总是会触发突变。
如此(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>
答案 1 :(得分:0)
这是因为箭头功能中的this
不是您期望的“普通功能”中的sudo rm -rf
。您可以参考Arrow functions或Javascript ES6 — Arrow Functions and Lexical this
了解更多信息