parameters - Flutter:将传递的参数更改为“StatefulWidget”
问题描述
我有一个StatefulWidget
名为BounceContainer
. 此类包含一个参数child
,类似于典型的 Flutter 小部件。基本上,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()
(从主程序或BounceContainer
类)也不会强制更新子小部件。
解决此问题的正确方法(也是有效方法)是什么?
解决方案
您不需要将所有参数传递给 State 类。您可以通过以下方式访问它们widget.child
推荐阅读
- javascript - localStorage 中的返回值作为 js 中的 Int?
- vb.net - 为什么访问密钥 E&xit 在我的 VB 程序中不起作用
- python - Django 教程常量 404 错误 urlpattern 识别
- reactjs - WSL 2 无法连接到 MongoDB
- swift - Placeholder not showing after textfield is cleared SwiftUI
- c - SegFault 调用 main
- django - 部分使用 Vue 和 nginx
- localhost - 如何从本地主机中的浏览器访问 vagrant?
- android-studio - 列表
- >> 解析多边形对象
- python - TypeError:行索引必须是整数,而不是str在python插入查询中