问题
I want to know how to access module store/state from another file. This is my code so far:
/store/index.js
import Vuex from 'vuex';
import categories from './modules/categories';
Vue.use(Vuex);
const store = new Vuex.Store({
state: {
},
actions: {
},
mutations: {
},
getters: {
},
modules: {
categories,
},
});
export default store;
/store/modules/categories.js
const categories = {
state: {
categories: [
{
name: 'category1'
path: 'path/to/there'
subcategories: [
{
name: 'subcategory1'
path: 'path/to/other/there'
subsubcategory: [
{
name: 'subsubcategory1'
path: 'path/to/other/there'
}
{
name: 'subsubcategory1'
path: 'path/to/other/there'
}
]
}
{
name: 'subcategory2'
path: 'path/to/other/there'
}
]
}
{
name: 'category2'
path: 'path/to/there'
subcategories: [
{
name: 'subcategory2'
path: 'path/to/other/there'
}
{
name: 'subcategory3'
path: 'path/to/other/there'
}
]
}
]
},
actions: {
},
mutations: {
},
getters: {
},
}
edit: I want to be able to access modules state/store here for example: /home.vue
<template>
<div>
<Headers></Headers>
<div class="user row">
<p>User Page</p>
<p> I want to be able to access modules store/state here and be able to pass getters here to filter some results from state</p>
</div>
<Footers></Footers>
</div>
</template>
<script>
import 'vue-awesome/icons';
import { mapState, mapGetters } from 'vuex';
import Headers from '/Headers';
import Footers from '/Footers';
export default {
name: 'home',
data() {
return {
};
},
methods: {
},
components: {
Headers,
Footers,
},
computed: {
...mapGetters([
'',
]),
...mapState([
'categories',
]),
},
};
</script>
<style lang="scss" scoped>
</style>
Now, I was able to access and loop through categories before, but thnx to @Sumit-Ridhal i found out that my store module was wrong so I had to change it and now I don't know how to access its state.
Thnx in advance, Cheers
回答1:
store.state." module name"."state data
I do store modules like this .
this is index store. stores/index.js
import Vue from 'vue'
import Vuex from 'vuex'
import createPersistedState from 'vuex-persistedstate'
import posts from '@/store/posts' // import external store mod
Vue.use(Vuex)
export default new Vuex.Store({
modules: {
posts
},
strict: true,
plugins: [
createPersistedState()
],
state: {...... etc
posts store module
// how to access this store console.log('module state', store.state.posts.data)
export default {
state: {
data: 'dfsd'
},
getters: {
},
mutations: {
},
actions: {
}
}
get store module data
import store from '@/store/'
store.state.posts.data
来源:https://stackoverflow.com/questions/43738186/vuex-store-module-access-state