'bool?' 类型的值不能分配给“bool”类型的变量。小部件返回值

时间:2021-07-09 14:53:52

标签: flutter dart

我有一个声明

bool _glutenFree = false;

当我尝试使用如下赋值运算符时

_glutenFree = widget.currentFilters['gluten'];

我收到一条错误消息

'bool?' 类型的值不能分配给“bool”类型的变量。

检查“widget.currentFilters['gluten']”的值

我尝试使用print命令,发现值为false。

现在当我将赋值语句更改为

_glutenFree = widget.currentFilters['gluten'] == true;

程序有效。

能不能请教一下这个问题

2 个答案:

答案 0 :(得分:0)

应该是bool? _glutenFree = false;

注意 ? 类型后面的 bool。它表示变量 _glutenFree 可以是 null

目前,currentFilters 可以返回 nullable 或 bool 类型的值,并且您的变量 currentFilters 被声明为不可为 null 的 bool 类型。


有关 Dart's Sound null safety 的更多信息,请前往 https://dart.dev/null-safety

答案 1 :(得分:-1)

_glutenFree = widget.currentFilters['gluten']!;

试试这个,因为你需要添加'!'。