【问题标题】:Dart check if many variable is nullDart 检查许多变量是否为空
【发布时间】:2021-12-28 19:33:52
【问题描述】:

你好,我是 dart 语言的新手,有人可以帮助我更好地编写这个条件吗,它可以工作,但它有很多重复性,我觉得有更好的方法来编写它:

 if (var1 != null || var2 != null || var3 != null || var4 != null || var5 != null){ ShowMyWidget }

谢谢。

【问题讨论】:

  • 您确定要让所有这些变量都为空吗?
  • 对我来说看起来不错,但是如果您有更多变量,您可以将它们推送到地图中,然后创建一个地图,该地图循环通过地图以检查地图中每个对象是否为 null

标签: flutter dart if-statement dart-null-safety ifnull


【解决方案1】:

我不会检查所有这些变量,而是将它们设为小部件的可选参数。如果这样做,您可以在实际需要它们时使用其中的 null-safety 检查它们是否为 null。

class TestWidget extends StatelessWidget {
  final String? testPar1;
  final String? testPar2;
  final String? testPar3;
  final String? testPar4;
  const TestWidget({
    this.testPar1,
    this.testPar2,
    this.testPar3,
    this.testPar4,
    Key? key,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        Text(testPar1 ?? 'nope'),
        Text(testPar2 ?? 'nope'),
        Text(testPar3 ?? 'nope'),
        Text(testPar4 ?? 'nope'),
      ],
    );
  }
}

请记住,您的做法并没有错。

【讨论】:

    【解决方案2】:

    如果你真的想要,你可以这样做:

    if ([var1, var2, var3, var4, var5].any((x) => x != null)) {
      ShowMyWidget();
    }
    

    【讨论】:

      【解决方案3】:

      好的,谢谢你的回答,我会稍微解释一下我的目标: 我在可能的应用程序中有一个包含许多自定义小部件的详细信息页面,我想检查我的小部件中的变量是否为空,以便显示或隐藏它。

      My app screenshot

      因此,例如,我想检查其中一个预订链接是否不为空以显示标题。

      if (link1 != null || link2 != null || link3 != null || link4 != null || var5 != null){ ShowMyTitle }
      

      【讨论】:

      • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。
      猜你喜欢
      • 2012-02-05
      • 1970-01-01
      • 2011-03-20
      • 2021-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多