小编ten*_*xes的帖子

如何在 Flutter 中初始化 StatefulWidget 的 State 中的字段?

我有这样的东西,其中小部件的颜色取决于布尔值,当您点击小部件时布尔值会翻转。但我还想初始化 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)

dart flutter

11
推荐指数
1
解决办法
2万
查看次数

标签 统计

dart ×1

flutter ×1