Почему сannot read properties of null при добавлении свойств в классе?

Ссылка скопирована
31 марта 2026 1 ответ

Не могу понять почему внутри класса свойства не работают, а снаружи если задать то норм?

Не знаю, но думаю в дальнейшем поделить класс ComponentsPlayer на Handlers, Buttons, Components

snippet

class ComponentsPlayer {   static playButton = document     .getElementById("root")     .querySelector(".playButton"); //null так нет ... }

class ComponentsPlayer { static playButton = document .getElementById("root") .querySelector(".playButton"); //null так нет ... }

(() => { //ComponentsPlayer.playButton = document.querySelector(".playButton"); так работает ComponentsPlayer.handlerPlay(player); })();

(() => { //ComponentsPlayer.playButton = document.querySelector(".playButton"); так работает ComponentsPlayer.handlerPlay(player); })();

Дополнительно:

Потому что на момент присваивания DOM элемент не существует

  • Спасибо Вам. Не как не выйдет в классе присвоить?(
  • Speakermen, выйдет. Достаточно js выполнить после того, как DOM элемент нужный появится на странице.
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Игорь Волков Ответ

Ошибка "Cannot read properties of null" возникает, когда вы пытаетесь обратиться к свойству объекта, который является null. Это может произойти, если вы забыли создать экземпляр объекта перед обращением к его свойствам, либо если в процессе выполнения кода объект был удален или не был правильно инициализирован.

Для того чтобы избежать данной ошибки, убедитесь, что перед обращением к свойствам объекта он был создан и проинициализирован. Например, если у вас есть класс:

class MyClass {
    public $property;
}
 
$obj = new MyClass();
$obj->property = 'value';

class MyClass { public $property; } $obj = new MyClass(); $obj->property = 'value';

Здесь мы создаем экземпляр класса MyClass и затем присваиваем значение свойству property. Таким образом, у нас не будет ошибки "Cannot read properties of null".

Также обратите внимание на то, что если вы пытаетесь обратиться к свойству объекта, которое не существует, то также может возникнуть данная ошибка. Убедитесь, что вы правильно обращаетесь к существующим свойствам объекта.

Если после выполнения данных рекомендаций ошибка все еще возникает, то необходимо провести отладку вашего кода, чтобы выяснить, в каком месте и по какой причине объект становится null. Может быть, вы где-то переопределяете его значение или происходит другая ошибка, которая приводит к данной проблеме.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно