Как оптимизировать управление элементами в списке в Vuex?

Мне с сервера приходят категории вида
{
    id: 1,
    title: "category",
    products: [
        id: 1,
        title: "product",
        subproducts: [
            id: 1,
            title: "subproduct",    
        ]           
    ]       
}

В категории может быть продукты, в продукте - субпродукты
Как управлять этим через Vuex? Например, локальное добавление продукта будет выглядеть так:
ADD_PRODUCT(state, { categoryName, price, title, subproducts = [] }) {
            let categories = state.categories
            if (!categories) return
            let category = _.find(categories, { title: categoryName })
            if (!category) return
            category.products.push({ price, title, subproducts })
        },

Удаление субпродукта так:
REMOVE_SUBPRODUCT(state, { categoryId, productId, id }) {
            let categories = [...state.categories]
            let category = _.find(categories, { id: categoryId })
            if (!category) return
            let product = _.find(category.products, { id: productId })
            if (!product) return
            _.remove(product.subproducts, { id })
            state.categories = categories
        },

Как можно это сократить и упростить?
  • Вопрос задан
  • 63 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы