我收到此错误
<块引用>该函数不能无条件调用,因为它可以 '空'。
尝试添加空检查 ('!').dart(unchecked_use_of_nullable_value)
Map
在
routeBuilders[initialRoute](context),
即使添加空检查后,它也没有得到修复,请帮忙
routeBuilders![initialRoute](context),
代码
@override
Widget build(BuildContext context) {
final routeBuilders = _routeBuilders();
return Navigator(
key: navigatorKey,
initialRoute: tabNavigatorRoot,
onGenerateInitialRoutes: (_, initialRoute) {
return [
MaterialPageRoute(
settings: RouteSettings(name: tabNavigatorRoot),
builder: (context) => routeBuilders[initialRoute](context),
)
];
},
);
}
Map<String, WidgetBuilder> _routeBuilders() {
return {tabNavigatorRoot: (context) => _getScreen(context, item)};
}
答案 0 :(得分:1)
看起来你把空检查放错了地方。地图访问运算符的签名是 python nuitka-hints.py main.py
,如果 V? operator[](K key)
不存在于地图中,它可以返回 null。
在您的示例中,key
始终为 routeBuilders
,因此无需在此处执行空检查。但是,您确实需要对 Map<String, WidgetBuilder>
的结果执行空检查,如下所示:
routeBuilders[initialRoute]
在调用之前对返回的闭包执行空检查。