Я использую The Complete 2020 Flutter Development Bootcamp с Dart, и этот код взят прямо из видео:
import 'package:flutter/material.dart';
import 'screen0.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
initialRoute: '/',
routes: {
'/', (context) => Screen0(),
},
);
}
}
Код не компилируется с ошибкой The argument type 'Set<Object>' can't be assigned to the parameter type 'Map<String, Widget Function(BuildContext)>'.
Если я приведу объект маршрутов, то получится
import 'package:flutter/material.dart';
import 'screen0.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
initialRoute: '/',
routes: {
'/', (context) => Screen0(),
} as Map<String, WidgetBuilder>,
);
}
}
Код компилируется, но вылетает при запуске с ошибкой type '_CompactLinkedHashSet<Object>' is not a subtype of type 'Map<String, (BuildContext) => in type cast
Видео должно быть достаточно актуальным -date, это похоже на недавнее изменение. Может ли кто-нибудь сказать мне, что я делаю не так, или как я должен к этому подойти?
Версия:
Flutter 1.12.13+hotfix.9 • channel stable • https://github.com/flutter/flutter.git
Framework • revision f139b11009 (5 weeks ago) • 2020-03-30 13:57:30 -0700
Engine • revision af51afceb8
Tools • Dart 2.7.2