是否可以让用户在flutter中选择任何一个命名参数?



我想让小部件的用户知道,参数中的任何一个都需要传递值,以便它不能抛出null错误。

import 'package:flutter/material.dart';
class TestWidget extends StatelessWidget {
const TestWidget({
super.key,
this.leadingString,
this.leadingIcon,
});
final String? leadingString;
final Widget? leadingIcon;
@override
Widget build(BuildContext context) {
return ListTile(
leading: leadingIcon ?? Text(leadingString!),
);
}
}

您可以在构造函数中使用assert来指定这样的条件。如果小部件的构造方式导致断言失败,它将抛出"断言失败";错误:

const TestWidget({
super.key,  
this.leadingString,
this.leadingIcon,
}) : assert (leadingString != null || leadingIcon != null,
'either leadingString or leadingIcon must be provided');

相关内容

最新更新