首页 > 解决方案 > vue.js状态管理for语句中的多个if条件获取数据并返回

问题描述

我在 vue.js 中使用状态管理来获取产品。我正在从数据库中获取带有 ID 的产品。如果 $state 已经有产品,我需要提出两个退货条件。

  1. 第一个条件是 $state.products 是否有任何产品而不是让它返回,并且

  2. 第二个条件,如果传递一个 ID 并根据 ID 获取相关日期,如果再次传递相同的 ID,它将返回值。

但我很困惑如何为多个匹配设置条件。我也为此尝试了逻辑 AND 运算符,但没有任何效果。请帮我解决这个问题。

这是我的代码。

产品.vue


   

     mounted () {
                    this.$store.dispatch("loadProducts",this.category);
                },
                computed:{
                    ...mapState([
                        'products'
                    ])
                },

这是我正在处理获取产品的状态管理的文件。index.js


const store = new Vuex.Store({
    state: {
        pageTitle: '',
        products: [],
    },
    mutations: {
        setTitle(state, title) {
            state.pageTitle = title;
        }
    },
    actions: {
        loadProducts({ commit }, id) {
            if (this.state.products.length != 0) {
                var i;
                for (i = 0; i < this.state.products.length; i++) {
                    var j = this.state.products[i].category_id;                   
                }
            } else if (this.state.products.length != 0 && id == j) {
                console.log("RETURN");
                return;
            } else {
                axios.get('/loadProducts/' + id)
                    .then(({ data }) => {
                        this.state.products = data.items;
                        console.log(this.state.products);
                        commit('set_products', data.items)
                    })
            }
        },
    },
    mutations: {
        set_products(state, products) {
            state.products = products;
        }
    }
});

标签: javascriptangularjsvue.jsstate-management

解决方案


推荐阅读