小部件参数上的空安全

时间:2021-05-21 07:38:07

标签: flutter dart-null-safety

在空安全之前,我可以传递小部件,如果检查它为空,将显示其他小部件。在空安全环境中,如果我没有传递小部件 imagenote,有没有办法?

class Message extends StatelessWidget {
  const Message({
    Key key,
    this.image,
    this.title = "",
    this.subtitle = "",
    this.note,
    this.onTap
  }) : super(key: key);

  final Widget image;
  final String title;
  final String subtitle;
  final Widget note;
  final Function onTap

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: onTap,
      child: Column(
        children:[
          image ?? Container(),
          if(note != null) note
        ]
      )
    );
  }
};

1 个答案:

答案 0 :(得分:0)

  • 如果孩子可以?,请使用null

    class FooWidget extends StatelessWidget {
      final Widget? child; // <-- Nullable, use '?'
    
      FooWidget({
        this.child,
      });
    
      // ... 
    }
    
  • 如果孩子不能required,请使用null

    class FooWidget extends StatelessWidget {
      final Widget child; // <-- Non-nullable
    
      FooWidget({
        required this.child, // <-- Use 'required'
      });
    
      // ...
    }