Проблема проверки Vue JS Vuelidate с вложенным массивом объектов

#vue.js #validation #vuejs3 #vuelidate #vue-validator

Вопрос:

Я попытался использовать проверку коллекций из Vuelidate. (я использую Vue 3). Итак, то, как я это делаю сейчас, отображает поля ввода, но чего мне здесь не хватает, так это проверки, это не работает. У меня должен быть $каждый массив в моем объекте v$, но у меня его нет, и я не знаю, почему, я сделал все, как в документации [https://vuelidate.js.org/#sub-collections-validation]. Какая-нибудь помощь??? Я хочу, чтобы требовались первые два входа.

вот как выглядит мой код:

   <form @submit.prevent="onSubmit">
    <div class="form-items">
      <div
        class="form-group"
        v-for="(property, index) in v$.properties.$model"
        :key="index"
      >
        <label :for="property.name">{{ property.label }}</label>
        <input
          :type="property.type"
          class="form-control"
          :id="property.name"
          v-model="property.value"
        />
      </div>
      <pre>{{ v$ }}</pre>
    </div>
    <Button
      type="submit"
      variant="primary"
      text="Add property"
      :onClick="onSubmit"
    />
  </form>
</template>

<script>
import useVuelidate from "@vuelidate/core";
import { required } from "@vuelidate/validators";
import Button from "../components/Button";

export default {
  name: "PropertyForm",
  components: {
    Button,
  },
  setup() {
    return { v$: useVuelidate() };
  },
  data() {
    return {
      properties: [
        {
          name: "title",
          label: "Title",
          value: "",
          type: "text",
        },
        {
          name: "regular_price",
          label: "Regular price",
          value: "",
          type: "number",
        },
        {
          name: "sales_price",
          label: "Sales price",
          value: "",
          type: "number",
        },
        { name: "zip", label: "Zip", value: "", type: "text" },
        {
          name: "neighborhood",
          label: "Neighborhood",
          value: "",
          type: "text",
        },
        {
          name: "city",
          label: "City",
          value: "",
          type: "text",
        },
        { name: "status", label: "Status", value: "", type: "number" },
      ],
    };
  },
  validations: {
    properties: {
      required,
      $each: {
        name: {
          required,
        },
      },
    },
  },
};
</script>```
 

Комментарии:

1. $each не поддерживается в последней версии vuelidate github.com/vuelidate/vuelidate/issues/781, vuelidate-next.netlify.app/…