suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Vue 3 V-Modell wird an die Enkelkomponente übergeben

Ich habe drei Komponenten und möchte ein reaktives Modell von Eltern -> Kind -> Enkel weitergeben (Vee-Validierungsfeld).

Die übergeordnete Komponente sieht also so aus:

<template>
  <child v-model="formData" />
</template>
.
.
.
setup() {
  const formData = ref<CreateAccount>({
      email: "",
      firstName: "",
      lastName: ""
  });

  return {
    formData,
  };
}

Untergeordnete Komponente (mit Enkelkomponente) sieht so aus:

<template>
  <Field
    type="text"
    name="email"
    v-model="modelValue.email" ????
  />
</template>

export default defineComponent({
    name: "step-2",
    components: {
      Field,
    },
    props: {
      modelValue: {
        type: Object,
        required: true,
      },
    },
    emits: ["update:modelValue"],
  },
});

Mein Problem ist nun, dass ich den ModelValue nicht einfach an die Field-V-Model-Eigenschaft übergeben kann. Daher bin ich mir nicht sicher, ob es eine Reihe von Ereignissen gibt oder ob der untergeordnete ModelValue umgestaltet werden muss.

P粉731861241P粉731861241241 Tage vor503

Antworte allen(1)Ich werde antworten

  • P粉044526217

    P粉0445262172024-03-27 00:32:00

    我最终在我的子组件中使用了以下解决方案:

    <template>
      <Field
        type="text"
        name="email"
        v-model="model.email"
      />
    </template>
    
    export default defineComponent({
      name: "step-2",
      components: {
        Field,
      },
      props: {
        modelValue: {
          type: Object,
          required: true,
        },
      },
      computed: {
        model: {
          get() {
            return this.modelValue;
          },
          set(value) {
            this.$emit("update:modelValue", value);
          },
        },
      },
    },
    });

    Antwort
    0
  • StornierenAntwort