解析错误:已声明标识符'store'。我在main上收到此错误.js并且不确定如何继续


var store = new Vuex.Store({
state,
mutations,
actions,
getters,
});

这是主.js

import Vue from "vue";
import Vuex from "vuex";
import App from "./App.vue";
import firebase from "firebase/app";
import "firebase/firebase";
import { firestorePlugin } from "vuefire";
import router from "./router";
import store from "./store";
import BootstrapVue from "bootstrap-vue";
import "./assets/app.scss";
import "bootstrap/dist/css/bootstrap.css";
import "bootstrap-vue/dist/bootstrap-vue.css";
import "video.js";
import "video.js/dist/video-js.css";
import "videojs-playlist-ui/dist/videojs-playlist-ui.vertical.css";
import "videojs-playlist-ui/dist/videojs-playlist-ui.css";
import vuetify from "./plugins/vuetify";
Vue.use(BootstrapVue);
Vue.config.productionTip = false;
Vue.use(Vuex);
Vue.use(firestorePlugin);
const firebaseConfig = {
databaseURL: "https://trudeau-cda16.firebaseio.com/forum.json%22"
};
firebase.initializeApp(firebaseConfig);
firebase.analytics();
export const db = firebase.firestore();
firebase.auth().onAuthStateChanged((user) => {
store.dispatch('fetchUser', user);
});

state = {
notes: [],
dates: [],
counter: 0,
tags: [
'Important',
'Must Check',
'Imcomplete',
'Done',
'Revise',
'Not Important',
],
selectedTags: [],
user: {
loggedIn: false,
data: null,
},
};
mutations = {
ADD_NOTE(state, payload) {
let newNote = payload;
state.notes.push(newNote);
state.counter++;
},
DELETE_NOTE(state, payload) {
let index = payload;
state.notes.splice(index, 1);
state.dates.splice(index, 1);
state.counter--;
},
ADD_DATE(state, payload) {
let newTimeStamp = payload;
state.dates.push(newTimeStamp);
},
ADD_TAG(state, payload) {
let tag = payload;
state.tags.unshift(tag);
},
ADD_SELECTED_TAG(state, payload) {
let selectedTag = payload;
state.selectedTags.push(selectedTag);
},
SET_LOGGED_IN(state, value) {
state.user.loggedIn = value;
},
SET_USER(state, data) {
state.user.data = data;
},
};
actions = {
addNote(context, payload) {
context.commit('ADD_NOTE', payload);
},
deleteNote(context, payload) {
context.commit('DELETE_NOTE', payload);
},
addDate(context, payload) {
context.commit('ADD_DATE', payload);
},
addTag(context, payload) {
context.commit('ADD_TAG', payload);
},
addSelectedTag(context, payload) {
context.commit('ADD_SELECTED_TAG', payload);
},
fetchUser({ commit }, user) {
commit('SET_LOGGED_IN', user !== null);
if (user) {
commit('SET_USER', {
displayName: user.displayName,
email: user.email,
});
} else {
commit('SET_USER', null);
}
},
};
getters = {
user: (state) => state.user,
getNotes: state => state.notes,
getDates: state => state.dates,
getTags: state => state.tags,
getSelectedTags: state => state.selectedTags,
getNoteCount: state => state.notes.length,
getCounter: state => state.counter,
};
var store = new Vuex.Store({
state,
mutations,
actions,
getters,
});

new Vue({
store,
router,
vuetify,
computed: {
notes() {
return this.$store.getters.getNotes;
},
dates() {
return this.$store.getters.getDates;
},
tags() {
return this.$store.getters.getTags;
},
selectedTags() {
return this.$store.getters.getTags;
},
counter() {
return this.$store.getters.getCounter;
},
},
render: h => h(App)
}).$mount("#app");

我在网上找不到任何对我有帮助的东西。我对js很陌生,我没有尝试过vue。

问题是您首先要创建一个名为store here 的变量

import store from "./store";

因此,当您稍后尝试在同一文件中创建另一个名为store的变量时,它会失败。

var store = new Vuex.Store({
state,
mutations,
actions,
getters,
});

更改导入的名称或为vuex存储分配的变量。像这样的

var VuexStore = new Vuex.Store({
state,
mutations,
actions,
getters,
});

相关内容

最新更新