相关疑难解决方法(0)

switch语句是否应该包含默认子句?

在我的第一次代码审查(前一段时间)中,我被告知在所有switch语句中包含一个default子句是一种好习惯.我最近记得这个建议,但不记得理由是什么.这对我来说听起来很奇怪.

  1. 总是包含默认声明是否有合理的理由?

  2. 这种语言是依赖的吗?我不记得当时我用的是什么语言 - 也许这适用于某些语言而不适用于其他语言?

default switch-statement

236
推荐指数
10
解决办法
20万
查看次数

请求导航器操作的上下文不包含导航器

我正在尝试在onTap中启动一个新屏幕,但是我收到以下错误:

请求导航器操作的上下文不包含导航器.

我用来导航的代码是:

onTap: () { Navigator.of(context).pushNamed('/settings'); },
Run Code Online (Sandbox Code Playgroud)

我在我的应用程序中设置了一条路线,如下所示:

routes: <String, WidgetBuilder>{
    '/settings': (BuildContext context) => new SettingsPage(),
},
Run Code Online (Sandbox Code Playgroud)

我试图使用stocks示例应用程序复制代码.我查看了Navigator和Route文档,但无法弄清楚如何将上下文包含在Navigator中.的context在使用的onTap感从传递到构建方法中的参数引用:

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
Run Code Online (Sandbox Code Playgroud)

SettingsPage是一个类,如下所示:

class SettingsPage extends Navigator {

Widget buildAppBar(BuildContext context) {
  return new AppBar(
    title: const Text('Settings')
  );
}

@override
Widget build(BuildContext context) {
  return new Scaffold(
    appBar: buildAppBar(context),
  );
 }
}
Run Code Online (Sandbox Code Playgroud)

flutter

33
推荐指数
7
解决办法
2万
查看次数

标签 统计

default ×1

flutter ×1

switch-statement ×1