flutter 如果许多变量为空,则执行Dart检查

1sbrub3j  于 2023-01-31  发布在  Flutter
关注(0)|答案(4)|浏览(118)

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

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

谢谢您。

kmbjn2e3

kmbjn2e31#

我不会检查所有这些变量,而是将它们作为小部件的可选参数。如果这样做,您只需在小部件内部使用null安全检查它们是否为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'),
      ],
    );
  }
}

请记住,你做这件事的方式并没有错。

ddarikpa

ddarikpa2#

如果您确实需要,可以执行以下操作:

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

aemubtdh3#

好的,谢谢你的回答,我再解释一下我的目标:我有一个详细信息页面,可以应用程序与许多自定义小部件,我想检查我的小部件内的变量是否为空,以显示或隐藏它。
My app screenshot
因此,在这里举个例子,我想检查是否预订链接之一不为空,以显示标题。

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

nwnhqdif4#

if (![var1, var2, var3, var4, var5].contains(null)){ ShowMyWidget }

相关问题