dart 构造函数中的默认值

Ily*_*cko 0 dart

我有以下需要 unpressedImage 字段的类。如果未指定pressedImage,我需要将unpressedImage 值设置为pressedImage 字段。我怎样才能以最好的方式实现这一目标?

class ImageButton extends StatefulWidget {
  final Image unpressedImage;
  final Image pressedImage;
  final onTap;

  const ImageButton({
    Key key,
    @required this.unpressedImage,
    this.pressedImage,
    this.onTap,
  }) : super(key: key);

  @override
  _ImageButtonState createState() => _ImageButtonState();
}
Run Code Online (Sandbox Code Playgroud)

Ste*_*hen 5

将其设置在初始化列表中,并使用条件来选择要使用的值:

class ImageButton extends StatefulWidget {
  final Image unpressedImage;
  final Image pressedImage;
  final onTap;

  const ImageButton({
    Key key,
    @required this.unpressedImage,
    Image pressedImage,
    this.onTap,
  })  : this.pressedImage =
            pressedImage == null ? unpressedImage : pressedImage,
        super(key: key);

  @override
  _ImageButtonState createState() => _ImageButtonState();
}
Run Code Online (Sandbox Code Playgroud)