Website-Suche

angular - FEHLER TypeError: Die Eigenschaft ‚replace‘ von null kann nicht gelesen werden


Ich bekomme einen TypeError, obwohl meine Anwendung ordnungsgemäß läuft.

"FEHLER TypeError: Die Eigenschaft 'replace' von null kann nicht gelesen werden"

Ich verstehe nicht, wie ich das lösen soll. Könnte mir jemand eine Idee geben oder mir helfen zu verstehen, warum das passiert?

if (isInitial) {
    // Add Data Rows (initially)
    for (const row of rows) {
        const clientVisitGuid = row[2];
        const location = row[3];
        row[5] = row[5].replace(/\//g, '\/\B');
        const service = row[5];
        const rowId = `${service || 'zzz'}_${location}_${clientVisitGuid}`;
        const sortString = `${service || 'zzz'}_${location}_${clientVisitGuid}`;
        const daysPastDischarge = parseInt(row[6]);
        const isMarked = parseInt(row[7]) === 1 ? true : false;
        if (cbt.hasBodyRow(rowId) === false) {
            const values: Array<[string, string | number]> = [];
            let isAllClear = true;
            for (let i = 0; i < row.length; i++) {
                const colId: string = cbt.headerRow.headerCols[i].id;
                const colVal: string | number = row[i];
                if (cbt.headerRow.headerCols[i].isFlag === true && colVal !== 1) {
                    isAllClear = false;
                }
                values.push([colId, colVal]);
            }
            const valueHash = hash(JSON.stringify(row));
            cbt.addBodyRow(
                rowId,
                values,
                valueHash,
                sortString,
                daysPastDischarge,
                isMarked,
                isAllClear,
                true,
            );
        }
    }
}

Antwort #1

Um den Fehler zu beheben, müssen Sie prüfen, ob die Variable existiert, bevor Sie versuchen, den String zu ersetzen. Umhüllen Sie es mit einer if-Anweisung wie folgt:

if(row[5]) {
    row[5] = row[5].replace(/\//g, '\/\B');
    const service = row[5];
}

Antwort #2

Sieht so aus, als ob row[5] null ist. Sie sollten zuerst prüfen, ob row[5] existiert. So etwas wie

if(row[5]) {
     row[5] = row[5].replace(/\//g, '\/\B');
     const service = row[5];
} 

Sie sollten auch erwägen, eine Ereignisbehandlung hinzuzufügen, wenn der Wert leer ist

Verwandte Artikel