我有一个名为StatefulWidget
的{{1}}。此类包含像典型的Flutter小部件一样的参数BounceContainer
。基本上,每当用户点击child
时,它就会反弹。到目前为止,我传递 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
从灰色变为任何随机颜色,并且将此按钮作为AnimationController
参数传递给child
类,则该按钮仍然保持灰色并呼叫BounceContainer
(从主程序或setState()
类)也不会强制更新 child 小部件。
解决此问题的正确方法(也是有效方法)是什么?
答案 0 :(得分:2)
您不需要将所有参数传递给State类。您可以使用widget.child