Изменение моих цен после отправки в vue

#vue.js

Вопрос:

Я пытаюсь обновить свои продукты после обновления цены, но проблема, с которой я сталкиваюсь, заключается в том, что после обновления изменения не отображаются, если я не обновлю свою страницу.

Поэтому я подумал о том, чтобы удалить его, а затем поднять, но это тоже не сработало, продукт не удаляется, и его повышение также не меняет цену.

Я также использую vue.

Вот мой код

 <template>
    <div>
        <div class="row my-5">
            <div class="col-md-6">
                <div class="card">
                    <div class="card-body">
                        <ul class="nav nav-tabs" id="myTab" role="tablist">

                            <li class="nav-item" role="presentation" v-for="category in categories">
                                <a class="nav-link active"
                                id="home-tab"
                                data-toggle="tab"
                                :href="'#' category"
                                role="tab"
                                aria-controls="home"
                                aria-selected="true"
                                @click="changeCategory(category)"
                                >
                                    {{ category }}
                                    {{ getSingleCat(category) }}
                                </a>
                            </li>
                        </ul>

                        <div class="tab-content" id="myTabContent">

                            <div class="tab-pane fade show active" :id="categoryTab">
                                <div>
                                    <table class="table table-sm table-bordered">
                                        <thead class="bg-primary">
                                        <tr>
                                            <th>Name</th>
                                            <th>Qty</th>
                                            <th>Price</th>
                                        </tr>
                                        </thead>
                                        <tbody>
                                            <tr v-for="product in products" v-if="product.category === categoryTab">
                                                <td>{{ product.name }}</td>
                                                <td>
                                                    <input
                                                        type="number"
                                                        v-model="qty[product.name]['qty']"
                                                    >
                                                </td>
                                                <td>{{ product.price }}</td>
                                            </tr>
                                        </tbody>
                                    </table>
                                </div>

                                <div>
                                    <div class="btn btn-success" @click="updatePrice()">
                                        Save
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</template>

<script>
export default {
    props: ['bus'],
    data() {
        return {
            categories: null,
            prices: null,
            singleCat: '',
            qty: {},
            categoryTab: 'SHIRTS'
        }
    },
    computed: {
    },
    methods: {
        getProductsCategories(){
            axios.get('/api/admin/products/categories').then(response => {
                this.categories = response.data.categories;
                this.products = response.data.products;

                this.products.forEach(r => {
                    this.qty[r.name] = {
                        name: r.name,
                        qty: r.qty
                    }
                })
            })
        },
        updatePrice(){
            axios.post(`/api/admin/products/price`, {
                price: this.price
            }).then(response => {
                response.data.updated.forEach(u => {
                    let p = this.products.find(product => product.name === u.name);

                    this.products.forEach(product => {
                        if(product.name === r.name){
                            this.products.slice(product);
                        }
                    })

                    this.products.push({
                        'qty' : u.qty,
                        'name': u.name,
                        'price' : u.price,
                    })
                })
            });
        }
    },
    mounted(){
        this.getProductsCategories();
    }
}
</script>
 

Комментарии:

1. Это может не решить вашу проблему, но в updatePrice() у вас есть «если(product.name === r.name){«, разве это не должно быть «если(product.name === u.name){«?