type'((=>Null"不是类型"(((=>映射<字符串,动态>(?'或其他
如何摆脱此错误?
下面是我的代码片段。
FutureBuilder<ActivityCheckPoints>(
future: apiGetCheckPointsName(),
builder: (context, snapshot) {
if(snapshot.hasData)
return Container(
child:
MultiSelectFormField(
chipBackGroundColor: Colors.blue,
chipLabelStyle: TextStyle(fontWeight: FontWeight.bold),
dialogTextStyle: TextStyle(fontWeight: FontWeight.bold),
checkBoxActiveColor: Colors.blue,
checkBoxCheckColor: Colors.white,
dialogShapeBorder: RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(12.0))),
title: Text(_actpoints,
style: TextStyle(fontSize: 16),
),
dataSource: snapshot.data!.listactiviticheckpoints!.map((value){
return {'display': '$value','value': value};
}).toList(),
textField: 'display',
valueField: 'value',
okButtonLabel: 'OK',
cancelButtonLabel: 'CANCEL',
hintWidget: Text(_actpointsdisplay,
),
initialValue: _listActivityPointNames,
onSaved: (value) {
if (value == null) return;
setState(() {
_listActivityPointNames = value;
});
},
),
);
return Container();
}
),
我认为这个小部件并没有完全迁移到零安全。因此,我将其分离为一个StatelessWidget,并在第一行添加了以下注释:
// @dart = 2.9
它必须具有"//"。
记得在运行时添加--no sound null safety。
flutter run --no-sound-null-safety
有关不健全零安全的更多信息:https://dart.dev/null-safety/unsound-null-safety
感谢@Nitrodon帮助我链接问题(github.com/cetorres/multiselect_formfield/issues/38(