Uncaught TypeError: Cannot set property of null

42
13 января 2022, 13:20

Если я пишу так:

render() {
    let a = this.state.table
    for (var key in a) {
        console.log("Key:", key)
        console.log("Value:", a[key])
    }
    ...
}

То все работает правильно и выводит

KEY: 0
Value: {$$typeof: Symbol(react.element), type: "tr", key: "3", ref: null, props: {…}, …}

А так:

render() {
    let a = this.state.table
    a[0] = some_thing \\ a['0'] = some_thing  .table тоже
    ...
}

Выдает ошибку:

Uncaught TypeError: Cannot set property '0' of null (react-dom.development.js:25193)

Как это исправить?

Answer 1

render вызывается несколько раз. В один из этих разов (первый?) this.state.table равно null. Цикл по свойствам null-объекта не выполняет ни одной итерации, поэтому Вы его не видите в консоли.

var a = null; 
console.log("before for"); 
for (var key in a) { 
  console.log("Key:", key) 
  console.log("Value:", a[key]) 
} 
console.log("after for");

READ ALSO
Подключение блока при прокрутке к месту или через некоторое время после загрузки страницы

Подключение блока при прокрутке к месту или через некоторое время после загрузки страницы

На сайте https://alisa-musicru/ есть блок Клипы с множеством Youtube ifarme что приводит к долгой загрузке сайта, и соответственно снижению рейтинга в поисковиках

143
Подскажите, почему возникает ошибка?

Подскажите, почему возникает ошибка?

Необходимо, чтобы ф-ия удаляла букву 'o' в слове worldПодскажите, почему возникает ошибка в коде?

95
Не могу поместить value в функцию

Не могу поместить value в функцию

друзья! Проблема вот в чемРешил я написать примитивный калькулятор и все получилось, НО, в каждой функции математической операции лежит переменная...

99
Не работает js в IE 11, в остальных браузерах - ок

Не работает js в IE 11, в остальных браузерах - ок

Мой первый сайт partnernktru, сильно не пинайте

62