WafelT
@WafelT
HTML/CSS/JavaScript

Как я могу зависимости от типа, передать в пропсы кокретный массив из объекта?

Как я могу в зависимости от типа, заменить код в компоненте и передать ей определённый масcив.

Есть объект с массивами, в зависимости от типа в пропсах должен передаться определённый массив, в коде есть пример не рабочего метода, но всё должно работать по такой логике

<template>
	<main class="main">
		<div class="container">
			<section class="menu">
				<div class="section-heading">
					<h2 class="section-title restaurant-title">{{ products.name }}</h2>
					<div class="card-info">
						<div class="rating">{{ products.stars }}</div>
						<div class="price">От {{ products.price }} ₽</div>
						<div class="category">{{ products.kitchen }}</div>
					</div>
				</div>
				<div class="cards cards-menu">
					<products-card :cards="allRestaurants.foodBand"></products-card>
				</div>
			</section>
		</div>
	</main>
</template>

<script>
import './Products.scss';
import ProductsCard from './ProductsCard.vue';

import { mapActions, mapGetters } from 'vuex';

export default {
	name: 'Products',
	components: { ProductsCard },
	props: {
		
	},
	computed: {
		...mapGetters(['allPartners', 'allRestaurants']),
		products() {
			let result = {}
			let vm = this;
			this.allPartners.map(function(item) {
				if (item.id === vm.$route.query.products) {
					result = item
				}
			})
			return result;
		}
	},
	async mounted() {
		this.fetchPartners();
		this.fetchRestaurants();
	},
	methods: {
		...mapActions(['fetchPartners', 'fetchRestaurants']),
		getLinkPath(type) {
            const products = {
                'food-band.json': 'allRestaurants.foodBand',
                'pizza-plus.json': 'allRestaurants.pizzaPlus',
                'pizza-burger.json': 'allRestaurants.pizzaBurger',
                'tanuki.json': 'allRestaurants.tanuki',
                'gusi-lebedi.json': 'allRestaurants.gusiLebedi',
                'palki-skalki.json': 'allRestaurants.palkiSkalki',
            };
            return products[type];
        }
	},
}

</script>
  • Вопрос задан
  • 33 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Maks_Min
Вы можете создать computed property, где создадите проверку и в зависимости от проверки возвращать нужные данные, а в template написать :cards="название computed property". Если я правильно понял вашу проблему. Ну либо же создать action во vuex и менять allRestaurants, в зависимости от переданного значения.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы