我正在学习扑克,这段代码直接来自老师。我知道这种情况一直在变化,这可能就是它没有运行的原因。无论如何它是:
class Klimatic extends StatefulWidget {
@override
_KlimaticState createState() => new _KlimaticState();
}
class _KlimaticState extends State<Klimatic> {
String _cityEntered;
Future _goToNextScreen(BuildContext context) async {
Map results = await Navigator
.of(context)
.push(new MaterialPageRoute<dynamic>(builder: (BuildContext context) {
return new ChangeCity();
}));
if ( results != null && results.containsKey('enter')) {
_cityEntered = results['enter'];
// debugPrint("From First screen" + results['enter'].toString());
}
}
答案 0 :(得分:2)
如果不了解确切的API详细信息,看起来您期望有Route<Map>
类型,但您创建的是Route<dynamic>
(或MaterialPageRoute<dynamic>
)。我假设你可以试试:
new MaterialPageRoute<Map>(...)
......而不是。
答案 1 :(得分:0)
这是因为当前的Flutter拒绝了dynamic
的{{1}}的参数类型。
您需要更改以下代码:
MaterialPageRoute
到
Map results = await Navigator
.of(context)
.push(new MaterialPageRoute<dynamic>(builder: (BuildContext context) {
return new ChangeCity();
}));
从以上更改可以看到,您不需要Map results = await Navigator.of(context)
.push(MaterialPageRoute(builder: (BuildContext context) {
return ChangeCity();
})
);
关键字。并且不再需要dynamic
关键字,因为它现在是可选的。