Мир вам

Я изучаю жизненный цикл виджета Flutter и остановился на точке, которая является логической переменной this.mounted, она существует непосредственно в классе State, который может быть связан только с StatefulWidget в качестве подкласса и никогда не будет / не делал с StatelessWidget.

Вопрос в том ...

Все ли виджеты действительно содержат переменную bool this.mounted, как говорят некоторые здесь, в [этом принятом ответе, эта статья и this] или нет?

Я искал во Flutter и нашел эту смонтированную переменную только в State, то я продолжил поиски и нашел функцию под названием mount() внутри класса Element.

Класс StatelessWidget связан с классом StatelessElement, который является наследником класса ComponentElement, который наследуется непосредственно от класса Element.

Я очень запутался прямо сейчас, может я неправильно понял это, мне нужно объяснение по этому поводу, пожалуйста !, Спасибо.

0
Salah Rashad 19 Май 2021 в 13:28

1 ответ

Лучший ответ

Не знаю, почему в ответах написано all widgets. Но NO.

Только объекты State<T> имеют getter с именем mounted.

Это легко проверить, просто cmd + click или ctrl + click на любом State в вашем классе, который перенаправит вас в файл с именем framework.dart, расположенный в {{X4 }} дорожка.

Найдите mounted, и эта строка - единственное фактическое объявление, которое вы найдете.

bool get mounted => _element != null;

И это часть кода класса State.

1
Nisanth Reddy 19 Май 2021 в 14:11