如何传递值布尔?在颤动的开关中

How to pass a value bool? in a switch in flutter

我正在 Flutter 中制作一个带有开关的表单,我想保存它的值,但 Flutter 不需要布尔值?所以我不知道如何获得我的价值。

这是我的代码:

Switch(
   value: _editedProduct.myswitchvalue, //line that causes problem
   onChanged: (bool val) =>
      setState(() {
         _editedProduct = _editedProduct.copyWith(myswitchvalue: val);
     },
   ),
),

这是我的错误信息

The argument type 'bool?' can't be assigned to the parameter type 'bool'.dart(argument_type_not_assignable)
FormProductModel _editedProduct

感谢您阅读我

试试下面的代码希望对你有帮助。

声明布尔变量

bool isSwitched = false;

声明您的开关小部件:

Switch(
      value: isSwitched,
      onChanged: (value){
        setState(() {
          isSwitched=value;
          print(isSwitched);
        });
      },
      activeTrackColor: Colors.lightGreenAccent,
      activeColor: Colors.green,
    ),

你的输出 -> true

myswitchvalue 是 bool 类型?这意味着它可以是 null 或布尔值。如果您确定它不为空,则可以添加!像那样:

Switch(
   value: _editedProduct.myswitchvalue!, // watch the !
   onChanged: (bool val) =>
      setState(() {
         _editedProduct = _editedProduct.copyWith(myswitchvalue: val);
     },
   ),
),

在此处阅读有关 dart 中的空安全性的更多信息:https://dart.dev/null-safety