我有这样的东西,其中小部件的颜色取决于布尔值,当您点击小部件时布尔值会翻转。但我还想初始化 bool,对于小部件的不同实例,它会有所不同。我尝试了类似的方法,其中StatefulWidget类包含初始值initBool,该值用于initState设置myBool。
它似乎有效(但老实说,我不确定,因为我遇到了一个奇怪的错误,但我不知道它是否相关),但它只是感觉有点笨重,所以我想知道是否有更多在 Flutter 中执行此操作的适当方法。谢谢!
class MyBox extends StatefulWidget {
final bool initBool;
MyBox(this.initBool);
@override
_MyBoxState createState() => _MyBoxState();
}
class _MyBoxState extends State<MyBox> {
bool myBool;
@override
void initState() {
super.initState();
myBool = widget.initBool;
}
@override
Widget build(BuildContext context) {
return InkWell(
child: Container(
color: myBool ? Colors.green : Colors.red
),
onTap: () {
setState(() {
myBool = !myBool;
});
},
);
}
}
Run Code Online (Sandbox Code Playgroud)