Size: a a a

Dart & Flutter по-русски

2020 December 18

YI

Yuriy Iontsev in Dart & Flutter по-русски
Serge Shkurko
stateful имеет немного другой lifecycle
ты из родительского элемента отправляешь в него данные
он получает их, ты обрабатываешь в initState
но если в родителе меняешь данные, в дочернем stateful виджете надо отловить это изменение
для этого есть специальный метод
И что это за метод?
источник

АР

Андрей Рудин... in Dart & Flutter по-русски
Serge Shkurko
stateful имеет немного другой lifecycle
ты из родительского элемента отправляешь в него данные
он получает их, ты обрабатываешь в initState
но если в родителе меняешь данные, в дочернем stateful виджете надо отловить это изменение
для этого есть специальный метод
хотя да, для stateful наверное это может быть.
источник

lf

les forest in Dart & Flutter по-русски
Yuriy Iontsev
И как быть?
никаких сетевых вызовов из виджета!
источник

SS

Serge Shkurko in Dart & Flutter по-русски
Yuriy Iontsev
И что это за метод?
@override
void didUpdateWidget(covariant MyHomePage oldWidget) {
 super.didUpdateWidget(oldWidget);
 // TODO: implement didUpdateWidget
}


он вызывается в момент изменения передаваемых виджету новых параметров
oldWidget.myVar например старое значение
widget.myVar уже новое
источник

lf

les forest in Dart & Flutter по-русски
выносите все в отдельный класс хотябы
источник

YI

Yuriy Iontsev in Dart & Flutter по-русски
les forest
никаких сетевых вызовов из виджета!
Эм, так я данные и получаю из класса, у меня там метод, который делает запрос, а в виджете обрабатываю все это дело
источник

АР

Андрей Рудин... in Dart & Flutter по-русски
Yuriy Iontsev
Эм, так я данные и получаю из класса, у меня там метод, который делает запрос, а в виджете обрабатываю все это дело
посмотри сколько раз отправляется запрос
источник

lf

les forest in Dart & Flutter по-русски
Yuriy Iontsev
Эм, так я данные и получаю из класса, у меня там метод, который делает запрос, а в виджете обрабатываю все это дело
используй блок)
источник

АР

Андрей Рудин... in Dart & Flutter по-русски
дело в том что если ты в виджете логику будешь делать, у тебя виджет может перерисовываться несколько раз
источник

YI

Yuriy Iontsev in Dart & Flutter по-русски
Андрей Рудин
посмотри сколько раз отправляется запрос
А как?
У меня метод в initState один раз вызывается
источник

lf

les forest in Dart & Flutter по-русски
и все взаимодействия виджета и внешнего мира делай через него)
источник

АР

Андрей Рудин... in Dart & Flutter по-русски
используй GetX
источник

АР

Андрей Рудин... in Dart & Flutter по-русски
:)
источник

YI

Yuriy Iontsev in Dart & Flutter по-русски
Serge Shkurko
@override
void didUpdateWidget(covariant MyHomePage oldWidget) {
 super.didUpdateWidget(oldWidget);
 // TODO: implement didUpdateWidget
}


он вызывается в момент изменения передаваемых виджету новых параметров
oldWidget.myVar например старое значение
widget.myVar уже новое
Воу, и куда это?
источник

YI

Yuriy Iontsev in Dart & Flutter по-русски
Блин, ну вы красавцы, мне пока рано до этих штук👍😁
источник

lf

les forest in Dart & Flutter по-русски
Андрей Рудин
используй GetX
да точно, есть же более современные паттеры
источник

SS

Serge Shkurko in Dart & Flutter по-русски
Yuriy Iontsev
Воу, и куда это?
в дочерний класс, добавил описание того, как работает
источник

АР

Андрей Рудин... in Dart & Flutter по-русски
Yuriy Iontsev
А как?
У меня метод в initState один раз вызывается
есть у тебя два виджета, ты делаешь запрос где?
источник

АР

Андрей Рудин... in Dart & Flutter по-русски
у тебя верхний виджет будет reBuild и перерисует дочерний виджет, у него еще раз вызовется initState
источник

SS

Serge Shkurko in Dart & Flutter по-русски
Андрей Рудин
у тебя верхний виджет будет reBuild и перерисует дочерний виджет, у него еще раз вызовется initState
нет
источник