@Hfnas

Как получить событие клика в updated()?

<template>
<input  v-model="quantity"
        type="number"
        class="quantity"
        min="1"
        :max="form.max"
        step="1"
        @focusout="updateValue($event, 'quantity', form.max)"
>
</template>
<script>
import {mapActions, mapMutations, mapState} from "vuex";


export default {
  data() {
    return {
      quantity: 1,

    }
  },
  name: "Form",
  props: {
    form: {
      type: Object,
      default: () => {}
    }
  },
  created() {
     this.quantity = this.form.quantity;
  },
  mounted() {
      this.quantity = this.form.quantity;
  },
  updated(){
    if (!this.form.isChange){
        this.quantity = this.form.quantity;
    }
  },
  computed: {
    ...mapState("calc", ["product"]),
  },
  methods: {
    ...mapMutations("calc", ["removeFormProduct", "setIsChangePrice"]),
    updateValue(event, field, maxValue) {
      const value = Number.parseFloat(event.target.value);

      if (value > maxValue) {
         value = maxValue;
      }
      this.form.isChange=true;
      this.$data[field] = value;
    }
}

Структура form такая:
form = {
                id: 1,
                price: 500,
                quantity: 1,
                max: 2,
                name: "UUO",
                isChange: false,
            };



По дебагу я вижу , что updated срабатывает перед updateMaxValue, и мне необходимо получить какое событие произошло в update.
  • Вопрос задан
  • 49 просмотров
Пригласить эксперта
Ответы на вопрос 1
@MaxRyazan
updated срабатывает в момент ре-рендеринга реактивной переменной в шаблоне. Соответственно, когда у тебя меняется значение v-model, будет срабатывать этот хук.

"какое событие произошло в update" - не понял суть твоего вопроса совсем.
Судя по твоему коду, событие будет @focusout
Ответ написан
Ваш ответ на вопрос

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

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