我得到这个错误,当我使用单选按钮。
int _value = 1;
error: A value of type 'int?' can't be assigned to a variable of type 'int'. (invalid_assignment at \[coacum_01\] lib/match_screen.dart:450)
说实话我不知道该怎么办,所以我什么都没试过。我能试什么呢?
bzzcjhmw1#
你可以通过执行int? _value = 1;来使_value为空,或者你可以通过执行_value = val ?? -1;来保证当你执行setState时val有一个值,这将把_value设置为-1,如果val == null。
int? _value = 1;
_value
_value = val ?? -1;
setState
val
-1
val == null
nxowjjhe2#
这是由于null安全性。您试图将可为null的整数int?赋给不可为null的整数int,这在Dart中是不允许的。要解决此错误,您可以将变量瓦尔的数据类型更改为int以使其不可为null,或者使用**_value = val!确保赋给_value的值不是null。你可以使用null-aware赋值运算符??=在_value为null的情况下为它赋值一个默认值,如下所示:_value = val??0**(仅当数据类型为**int?**时)
2条答案
按热度按时间bzzcjhmw1#
你可以通过执行
int? _value = 1;
来使_value
为空,或者你可以通过执行_value = val ?? -1;
来保证当你执行setState
时val
有一个值,这将把_value
设置为-1
,如果val == null
。nxowjjhe2#
这是由于null安全性。您试图将可为null的整数int?赋给不可为null的整数int,这在Dart中是不允许的。要解决此错误,您可以将变量瓦尔的数据类型更改为int以使其不可为null,或者使用**_value = val!确保赋给_value的值不是null。你可以使用null-aware赋值运算符??=在_value为null的情况下为它赋值一个默认值,如下所示:_value = val??0**(仅当数据类型为**int?**时)