有状态小部件中的 Flutter 字段不能是最终的

问题描述

Flutter 抱怨 _isSelected,因为它不是 final。问题是 must not 是最终的,因为它在 buttonPressed...

class SelectionButton extends StatefulWidget {
  final String title;
  final Function(String) onSelectionButtonTap;
  bool isSelected;

  SelectionButton({
    required this.title,required this.onSelectionButtonTap,required this.isSelected,});
  @override
  _SelectionButtonState createState() => _SelectionButtonState();
}

class _SelectionButtonState extends State<SelectionButton> {
  @override
  Widget build(BuildContext context) {
    return Expanded(
      child: GestureDetector(
        onTap: () {
          setState(() {
            widget.onSelectionButtonTap(widget.title);
            widget.isSelected = !widget.isSelected;
          });
        },child: Container(
          decoration: BoxDecoration(
            color: widget.isSelected ? AppColors.primary : AppColors.white,borderRadius: BorderRadius.circular(
              scaleWidth(10),),child: Center(
            child: Text(
              widget.title,textAlign: TextAlign.center,style: widget.isSelected
                  ? AppTextStyles.h5White
                  : AppTextStyles.h5Light,);
  }
}

这是 Flutter 给我的警告:

这个类(或这个类继承的一个类)被标记为“@immutable”,但它的一个或多个实例字段不是最终的:SelectionButton.isSelected

如您所见,我正在更改 widget.isSelected。我对颤振很陌生,不知道为什么颤振在这里抱怨。一切都按预期工作,但我想这不是最佳实践?我该如何解决这个问题?我在这里错过了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)