Я действительно запутался в setState (), методе сборки, buildcontext и контексте во флаттере. Позвольте мне напечатать то, что я знаю, и, пожалуйста, поправьте меня, если я ошибаюсь.
Виджеты без состояния: это виджеты, которые не изменяются при введении новых изменяющихся данных.
Виджеты с состоянием: эти виджеты изменяются с введением новых данных. Теперь, как они это делают, выглядит следующим образом:
данные, представленные в setState () , читаются трепетанием (не знаю точного термина) -> Это делает изменения в бэкэнде -> вызывают метод построения до перестройки виджетов , которые находятся под ним -> метод построения с помощью context помнит, где все принадлежало, и помещает все в назначенные места.
Что я знаю о context и contextbuilder:
Допустим, виджет похож на маленького ребенка, который не знает, кто он. В этом случае контекст будет тем, что мы сообщаем тому виджету (дочернему элементу), к которому он принадлежит, то есть родительскому (родительский виджет). и когда мы говорим Theme / Scaffold.of () , мы в основном имеем в виду, что go вверх по родительской лестнице виджета (семейному дереву) по родительскому элементу и ищем тот конкретный c виджет, который создал вас (Scaffold) и попросите его выполнить эту функцию.
ЕСЛИ РОДИТЕЛЬ МОЖЕТ, ЭТО ВЫПОЛНИТ ФУНКЦИЮ. ЕСЛИ ФУНКЦИЯ НЕ СУЩЕСТВУЕТ, ЭТО БУДЕТ ВЫКЛЮЧИТЬ ОШИБКУ, СКАЗЫВАЯ, ЧТО Я НЕ ИМЕЮ ВОЗМОЖНОСТЬ ДЕЛАТЬ, ЧТО УКАЗАТЬ C ВЕЩЬ ДЛЯ ВАС.