reactjs - TypeError: Ei voi lukea ominaisuutta 'forEach' määrittelemättömästä jest


Koen tämän virheen testisarjani suorituksessa käyttäen jestiä, vaikka se toimii sellaisenaan Reactin käännöksessä. Katso virhe- ja koodin kuvakaappaus alla.

Vastaus #1

Voit käyttää ehdollista ketjutusta tarkistaaksesi, onko data.tags ei tyhjä ja onko forEach-metodi olemassa tags-ominaisuudessa virheiden välttämiseksi. Mutta varmista, että annat oikeat tiedot.

const tags:any = [];

data.tags?.forEach?.((tag: Tag) => {
 tags.push({ label: tag.label, value: tag.value})
}

Vastaus #2

Olet testaamassa !== null, mutta sinun data-objektillasi ei ole ominaisuutta tags (ja react/typescript ei tiedä tätä). Joten sinun data.tags arvioidaan arvoon undefined.

if(data.tags !== null && data.tags !== undefined) {

tai

if(data.tags) {

toimisi.

Aiheeseen liittyviä artikkeleita