Validate an array of strings with yup

Hello everyone, I want to validate an array of strings with yup. I get the following error:

Uncaught TypeError:
yup__WEBPACK_IMPORTED_MODULE_0__.array(…).of(…).min(…).matches
is not a function

I googled this but found nothing what helps. But the reason must be this array, because all other validations works.
Code:

categories: Yup.array()
    .of(Yup.string())
    .min(1, "message")
    .matches(/([A-Za-z]+( [A-Za-z]+)+)/i, "message")
    .required("message"),

Thanks for your help

Can you provide a bit more code? This seems like partial code. The full code would be great.

Thanks for response. Here is the full code:

import * as Yup from 'yup';

export const createProductSchema = Yup.object().shape({
    image: Yup.string().required("Sie müssen ein Bild hochladen"),
    title: Yup.string().required("Bitte geben Sie den Namen des Produktes ein"),
    producer: Yup.string().required("Bitte den Hersteller eingeben"),
    categories: Yup.array()
    .of(Yup.string())
    .min(1, "Bitte geben Sie eine ProduktKategorie ein, als erstes die Hauptkategorie(z.B Herren), dann nur mit Leerzeichen getrennt die Unterkategorie(z.B Sportschuhe)")
    .matches(/([A-Za-z]+( [A-Za-z]+)+)/i, "Bitte die Kategorien ohne Komma eingeben. Erst die Hauptkategorie")
    .required("Sie müssen eine Kategorie eingeben"),
    desc: Yup.string().required("Bitte geben Sie eine Produktbeschrebung ein"),
    price: Yup.string().required("Bitte geben Sie den Preis ein"),
    currency: Yup.string().required("Bitte geben Sie die Währung ein, als €"),
    colors: Yup.array()
    .of(Yup.string())
    .min(1, "Bitte geben Sie die Farben nur durch Leerzeichen getrennt in englischer Sprache ein")
    .matches(/([a-z]+( [a-z]+)+)/i, "Bitte die Farben ohne Komma eingeben. Farben bitte klein schreiben")
    .required("Sie müssen eine Farbe eingeben"),
    sizes: Yup.array()
    .of(Yup.string())
    .min(1, "Bitte geben Sie die Größen nur durch Leerzeichen getrennt ein")
    .matches(/\s[0-9]+\s[0-9]+\s[0-9]+/, "Bitte die Größen ohne Komma eingeben Am Anfang ein Leerzeichen.")
    .required("Sie müssen eine Größe eingeben"),
    inStock:Yup.string()
    .matches(/[a-z]+ /, "Bitte klein schreiben")
    .required("Bitte geben Sie ein, ob das Produkt im Bestand ist, wenn ja dann true, wenn nein, dann false")
})

It appears when you use the of method, the min, matches and required need to be after Yup.string() nested within the of’s ( and ):


categories: Yup.array()
    .of(Yup.string()
         .min(1, "Bitte geben Sie eine ProduktKategorie ein, als erstes die Hauptkategorie(z.B Herren), dann nur mit Leerzeichen getrennt die Unterkategorie(z.B Sportschuhe)")
         .matches(/([A-Za-z]+( [A-Za-z]+)+)/i, "Bitte die Kategorien ohne Komma eingeben. Erst die Hauptkategorie")
         .required("Sie müssen eine Kategorie eingeben")
     ),