Мне нужно получить объект из магазина по идентификатору из маршрута. Идентификатор зависит от маршрута, и я получаю его правильно. Что-то не так с функцией. Может быть, я должен использовать функцию фильтра?
props: ['id'], // my props
computed: { // computed property
product () { // function name
const id = this.id; // getting id
return this.$store.getters.productById(id) // getting object from store
}
}
state: { // state
products: [ //products array
{
id: 1, // id
title: 'Lenovo Legion Y520', // title
vendor: 'Lenovo', // vendor
color: 'black', // color
material: 'metal/plastic', // material
},
{
id: 2, // id
title: 'Asus FX503VD', // title
vendor: 'Asus', // vendor
color: 'white', // color
material: 'plastic', //plastic
},
{
id: 3, // id
title: 'ASUS TUF Gaming FX504GD', // title
vendor: 'Asus', // vendor
color: 'black', // color
material: 'metal/plastic' //material
}
]
getters: { // getters
productById (state) { // function
return productId => { // product by id
return state.products.find(product => product.id === productId)
}
}
}
// route settings
{
path: '/product/:id', // route path
props: true, //enabled props
name: 'product', // route name
component: Product // component name
}
// main js importing plugins and Vue
import router from './router' // import router
import store from './store' // import store
import Vuetify from 'vuetify' // import vuetify
Vue.use(Vuetify); // use vuetify plugin
Vue.config.productionTip = false; // false
new Vue({ // new class instance
el: '#app', // el name
router, // enabled routing
store, // enabled store
components: { App }, // component name
template: '<App/>' // template name
});
Может быть, я передаю идентификатор не соответствующим образом, это. $ Store.getters.productById (id)? У меня нет идей, как с этим справиться