DropdownButton error: The argument type 'void Function(String)' can't be assigned to the parameter type 'void Function(String?)?'
DropdownButton error: The argument type 'void Function(String)' can't be assigned to the parameter type 'void Function(String?)?'
迁移到空安全后,我开始在 DropdownButton
中看到此错误。
DropdownButton<String>(
value: myValue,
onChanged: (String string) { // Error
print(string);
},
items: [
DropdownMenuItem(
value: 'foo',
child: Text('Foo'),
),
DropdownMenuItem(
value: 'bar',
child: Text('Bar'),
),
],
)
错误:
The argument type 'void Function(String)' can't be assigned to the parameter type 'void Function(String?)?'.
检查 value
属性 的实现,它可以为空。
final T? value;
这意味着您可以向 value
提供 String?
,如果您提供 String?
应该 onChanged
而不是 return String?
.
回答你的问题:
将 onChanged
方法的类型从 String
更改为 String?
,如下所示:
onChanged: (String? string) {
print(string);
}
或者,只需省略类型 String?
让 Dart 为您推断。
onChanged: (string) {
print(string);
}
迁移到空安全后,我开始在 DropdownButton
中看到此错误。
DropdownButton<String>(
value: myValue,
onChanged: (String string) { // Error
print(string);
},
items: [
DropdownMenuItem(
value: 'foo',
child: Text('Foo'),
),
DropdownMenuItem(
value: 'bar',
child: Text('Bar'),
),
],
)
错误:
The argument type 'void Function(String)' can't be assigned to the parameter type 'void Function(String?)?'.
检查 value
属性 的实现,它可以为空。
final T? value;
这意味着您可以向 value
提供 String?
,如果您提供 String?
应该 onChanged
而不是 return String?
.
回答你的问题:
将 onChanged
方法的类型从 String
更改为 String?
,如下所示:
onChanged: (String? string) {
print(string);
}
或者,只需省略类型 String?
让 Dart 为您推断。
onChanged: (string) {
print(string);
}