Show props used in filter functions - axios, vue3
P粉439804514
P粉439804514 2023-09-08 10:56:43
0
2
566

How to display props in filteredProducts when using axios to get data. I have passed the props as shown below.

export default {
  data() {
    return {
      filteredProducts: [],
    };
  },
  mounted() {
 axios
 .get('/src/stores/sneakers.json')
 .then(response => { const products = response.data
  this.filteredProducts = products.filter(product => product.name.includes('Nike'))
})
  },
  computed: {
        resultCount () {
            return Object.keys(this.filteredProducts).length 
        },
    },
  props: {
    brand: {
      type: Object,
    },
  },

I want to replace "Nike" with the brand name being passed. Thank you so much

P粉439804514
P粉439804514

reply all(2)
P粉872101673

Select the product named "Nike" and pass it into filteredProducts. Afterwards you can change the name using a computed property and use it in the template.

<template>
  <div 
    v-for="(item, i) in nikeProducts"
    :key="i"
  >
  </div>
</template>

<script>
export default {
  props: {
    brand: {
      type: Object
    }
  }
  data() {
    return {
      filteredProducts: [],
    };
  },
  mounted() {
    axios
      .get('/src/stores/sneakers.json')
      .then(response => { 
          const products = response.data
          this.filteredProducts = products.filter(product => product.name.include('Nike'));
      })
  },
  computed: {
    nikeProducts() {
      return this.filteredProducts.map(product => product.name = this.brand.name)
    }
  }
}
</script>
P粉529245050
export default {
              data() {
                return {
                  products: [],
                };
              },
              mounted() {
                   this.getSneakers();
              },
              methods: {
                 getSneakers() {
                 axios
                  .get('/src/stores/sneakers.json')
                   .then(response => { 
                  this.products = response.data ?? [];
                      })
                  }
               },
              computed: {
                    resultCount () {
                        return this.filteredProducts?.length ?? 0
                    },
                    brandName() {
                        return this.brand?.name ?? "";
                    },
                    filteredProducts () {
                        return this.products?.filter(
        product => product.name?.toLowerCase()?.includes(this.brandName.toLowerCase())
                   )
                    },
                },
              props: {
                brand: {
                  type: Object,
                },
              },
          }
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template