У меня есть StatefulWidget
с именем BounceContainer
.Этот класс содержит параметр child
как типичный виджет Flutter.По сути, он отскакивает child
всякий раз, когда пользователь нажимает на него.На данный момент я передаю параметр child следующим образом:
class BounceContainer extends StatefulWidget {
final Widget child; // Declaring "child"
BounceContainer({this.child}); // Initializing "child"
// Passing "child" to State
@override
_BounceContainerState createState() => _BounceContainerState(this.child);
}
class _BounceContainerState extends State<BounceContainer> {
Widget child;
_BounceContainerState(this.child); // Receiving "child"
@override
Widget build(BuildContext context) {
...
}
}
Проблема в этом случае заключается в том, что даже если параметр child
изменится, child сам не обновляется.
Например, если у меня есть кнопка, цвет которой меняется с серого на любой случайный цвет, основанный на AnimationController
, и я передаю эту кнопку как параметр child
параметру BounceContainer
class, кнопка по-прежнему остается серой, и вызов setState()
(из основной программы или BounceContainer
class) также не вызывает принудительного обновления виджета child .
Что правильноспособ (а также эффективный способ) обойти эту проблему?