@WorksDens
JustDen

Как сделать выбор целевого элемента?

Всем привет, я на vue новичек, помогите пожалуйста. У меня есть компонент color picker, у него есть массив элементов. Мне нужно при клике на целевой элемент отобразить на нем галочку выбора. 630dbd126b55d990698514.png
Я пробывал сделать это присвоив v-if visible: false и через метод this.visible = !this.visible, но при клике галочка отображается сразу на двух элементах, предпологаю что здесь необходимо получать индекс элемента из массива и отображать по индексу, пробывал использовать метод с параметром индекс: this.swatches[index].visible = !this.swatches[index].visible, но тоже ничего не выходит, возможно я как то не правильно обращаюсь к элементам.
Может кто подскажет в чем моя ошибка?

data() {
      return {
        visible: false,
        swatches: [
          {
            color: ['#f32261', '#f5d018',],
            }
        ],
      }
    }

<template>
  <div class="container">
    <div id="wrapper">
      <div v-for="swatch in swatches">
          <div class="swatch"
               v-for="(color, index) in swatch.color"
              :key="index"
              :style="{ 'background-color': color}"
              @click="sendDataToParent(color)">
              <div class="swatch_check_circle" v-if="visible">
                <v-icon
                  :color="'#fff'"
                  :style="'color: #fff; font-size: 15px; width: 21px; padding-bottom: 5px'"
                  >mdi-check-bold
                </v-icon>
              </div>
         </div>
      </div>
    </div>
  </div>
</template>
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 1
При клике вызывайте метод своего компонента который будет помещать выбранный цвет в отдельную переменную selectedColor.
В шаблоне проверяйте совпадает ли color с selectedColor: v-if="color==selectedColor"
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы