Vuejs 和 vuex,无法读取 属性 '$store'
Vuejs and vuex, cannot read property '$store'
我正在尝试 read/access 我的 vuex 存储,但我收到错误消息“无法读取未定义的 属性 '$store',为什么?
这是我试过的...
我在单独的 store.js 文件中创建了一个 Vuex 存储。
import Vuex from "vuex";
import Vue from "vue";
import { Auth } from "aws-amplify";
Vue.use(Vuex);
export const store = new Vuex.Store({
state: {
user: null
},
actions: {
// AWS signup action.
async signUp({ commit }, { username, password, firstName, lastName }) {
const data = await Auth.signUp({
username,
password,
attributes: {
given_name: firstName,
family_name: lastName
}
});
console.log(data);
}
}
});
接下来,我在我的main.js Vue实例中注册了它。
import Vuex from 'vuex'
import Vue from 'vue'
// Provide an initial state object for Vuex.
import store from './util/store.js';
Vue.use(Vuex)
/* eslint-disable no-new */
new Vue({
el: '#app',
store: store, // Vuex mechanism to "inject" the store into all child components from the root component.
render: h => h(App),
router
})
我尝试访问商店,即。 console.log(this.$store) <----找不到this.$store
在我的注册表中,vue:
etc
</template>
<script>
import AppNavbar from './Layout/AppNavbar'
import AppFooter from './Layout/AppFooter'
import { Card, Checkbox, Button, InfoSection } from 'src/components/UIComponents';
export default {
components: {
Card,
AppNavbar,
AppFooter,
InfoSection,
[Checkbox.name]: Checkbox,
[Button.name]: Button,
},
data(){
return {
form: {
email: '',
password: '',
acceptTerms: true,
}
}
},
methods: {
async submitReg() {
console.log(this.$store)
.........
您错过了 export default
您的商店:
export default new Vuex.Store({
...
并在创建商店时使用 Vue.use(Vuex)
一次,因为 Vue.use(Vuex)
期望您在此之后定义一个商店实例,而 main.js
中的情况并非如此,它会忽略已经创建的商店。
我正在尝试 read/access 我的 vuex 存储,但我收到错误消息“无法读取未定义的 属性 '$store',为什么?
这是我试过的...
我在单独的 store.js 文件中创建了一个 Vuex 存储。
import Vuex from "vuex";
import Vue from "vue";
import { Auth } from "aws-amplify";
Vue.use(Vuex);
export const store = new Vuex.Store({
state: {
user: null
},
actions: {
// AWS signup action.
async signUp({ commit }, { username, password, firstName, lastName }) {
const data = await Auth.signUp({
username,
password,
attributes: {
given_name: firstName,
family_name: lastName
}
});
console.log(data);
}
}
});
接下来,我在我的main.js Vue实例中注册了它。
import Vuex from 'vuex'
import Vue from 'vue'
// Provide an initial state object for Vuex.
import store from './util/store.js';
Vue.use(Vuex)
/* eslint-disable no-new */
new Vue({
el: '#app',
store: store, // Vuex mechanism to "inject" the store into all child components from the root component.
render: h => h(App),
router
})
我尝试访问商店,即。 console.log(this.$store) <----找不到this.$store
在我的注册表中,vue:
etc
</template>
<script>
import AppNavbar from './Layout/AppNavbar'
import AppFooter from './Layout/AppFooter'
import { Card, Checkbox, Button, InfoSection } from 'src/components/UIComponents';
export default {
components: {
Card,
AppNavbar,
AppFooter,
InfoSection,
[Checkbox.name]: Checkbox,
[Button.name]: Button,
},
data(){
return {
form: {
email: '',
password: '',
acceptTerms: true,
}
}
},
methods: {
async submitReg() {
console.log(this.$store)
.........
您错过了 export default
您的商店:
export default new Vuex.Store({
...
并在创建商店时使用 Vue.use(Vuex)
一次,因为 Vue.use(Vuex)
期望您在此之后定义一个商店实例,而 main.js
中的情况并非如此,它会忽略已经创建的商店。