gpt4 book ai didi

flutter - 如何在Flutter/Dart中有条件地将参数传递给Widget?

转载 作者:行者123 更新时间:2023-12-03 04:44:07 26 4
gpt4 key购买 nike

我想在使用小部件时有条件地传递参数。有什么办法吗?

...

return ListTile(
title: Text("${product.name}"),

// want to conditionally pass subtitle, which is not the right syntax (???)
if(condition) subtitle: Text("subtitle"),

// I know about this
subtitle: condition? Text("subtitle"): null,
);
},

...
我知道我们可以在这里使用三元运算符有条件地将值传递为null,但是我正在寻找的是跳过参数本身。
上面的示例适用于 ListTile小部件。但是我的好奇心是要知道对任何小部件都这样做的语法。

最佳答案

使用optional named parameters,当需要参数时使用parameter:value传递其值,否则可以完全跳过。在被调用的方法内部,null处理需要由开发人员完成(内部不处理)。
这是一个简化的示例:

void main() {
doNothing();
doNothing(index: 1);
doNothing(description: 'Printing');
doNothing(index: 1,description: 'Printing');

}

void doNothing({int index, String description}) {
print('Received => $index : $description');
}
输出:
Received => null : null
Received => 1 : null
Received => null : Printing
Received => 1 : Printing
注意:可以在Widget /方法实现中分配默认值,并且不一定总是 null
例:
void doNothing({int index, String description, String otherDesc = 'Provided By Default'}) {
print('Received => $index : $description : $otherDesc ');
}
输出:
Received => null : null : Provided By Default

关于flutter - 如何在Flutter/Dart中有条件地将参数传递给Widget?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62608195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com