#flutter #dart
Вопрос:
Когда я использовал видеомодель, он сообщил об ошибке поздней инициализации: поле «Видеомодель» не было инициализировано
class BiliRouterDelegate extends RouterDelegate<BiliRoutePath>
with ChangeNotifier, PopNavigatorRouterDelegateMixin<BiliRoutePath> {
final GlobalKey<NavigatorState> navigatorKey;
late BiliRoutePath path;
//为Navigator 设置一个key,必要的时候乐意通过navigatorKey,currentState 来获取NavigatorState对象
BiliRouterDelegate() : navigatorKey = GlobalKey<NavigatorState>();
List<MaterialPage> pages = [];
late VideoModel videoModel;
@override
Widget build(BuildContext context) {
//构建路由栈
pages = [
pageWrap(HomePage(onJumpToDetail: (videoModel) {
this.videoModel = videoModel;
//通知数据的变化 相当于setState
notifyListeners();
})),
if (videoModel != null)
pageWrap(VideoDetailPage(videoModel: this.videoModel))
];
return Navigator(
key: navigatorKey,
pages: pages,
onPopPage: (route, result) {
//在这里控制是否可以返回上一页
if (!route.didPop(result)) {
return false;
}
return true;
},
);
}
@override
Future<void> setNewRoutePath(BiliRoutePath path) async {
this.path = path;
}
}
введите описание изображения здесь
Почему произошла ошибка видеомодели? Спасибо