Справочная информация
В настоящее время я использую Nuxt. js в сочетании с Netlify CMS для создания веб-сайта, на котором администратор может динамически добавлять подкатегории в основную категорию - пример: если вы продаете средства для волос, вы можете sh добавить подкатегорию «воск для волос». При добавлении продукта в CMS пользователь должен выбрать одну из созданных им подкатегорий.
Пока это отлично работает, когда пользователь создает новый продукт для волос, этот продукт сохраняется в папке «assets / content. /hair/[SUBCATEGORY ]/product.json ', например:' assets / content / hair / shampoo / coconut_shampoo.json '.
Вот еще один способ визуализации:
Проблема
Однако проблема возникает, когда я хочу хранить эти продукты с помощью Vuex. В настоящее время я вручную указываю, из какой папки категории получать продукты: import Vue from 'vue'
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export const state = () => ({
shampoo: []
});
export const mutations = {
SET_SHAMPOO_PRODUCTS(state, data) {
state.shampoo = data
}
};
export const actions = {
async nuxtServerInit({ dispatch }) {
await dispatch('getShanpooProducts')
},
async getShampooProducts({ state, commit }) {
let context = await require.context('~/assets/content/subcategories/hair/shampoo', false, /\.json$/);
let products = context.keys().map(key => {
let res = context(key);
res.slug = key.slice(2, -5);
return res;
});
commit('SET_SHAMPOO_PRODUCTS', products)
}
};
Это работает, когда я знаю подкатегории, которые будут включены, но потому что пользователь (/ admin ) может создавать столько подкатегорий, сколько им нравится, это обеспечивает неизвестное количество папок в каталоге 'hair'.
Итак, как я могу хранить каждую папку подкатегорий, найденную в каталоге 'hair', не зная, как их много?