【问题标题】:Is it possible to make user select either of the named arguments in flutter?是否可以让用户在 flutter 中选择任一命名参数?
【发布时间】:2023-01-13 01:15:35
【问题描述】:

我想让小部件的用户知道任何一个参数都需要传递值,这样它就不会抛出空错误。

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!),
    );
  }
}

【问题讨论】:

  • 你想在编译时还是构建时
  • 如果编译时间?
  • 我认为这不可能,请查看 Peter Koltai 的帖子

标签: flutter widget dart-null-safety named


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2023-03-10
    • 2021-01-19
    • 1970-01-01
    • 2020-07-19
    • 2013-10-08
    • 2023-04-02
    • 1970-01-01
    • 2020-02-09
    相关资源
    最近更新 更多