具有空安全性的回调函数

时间:2021-05-31 05:53:26

标签: flutter dart-null-safety

我有一个这样的小部件

class googleMapComponent extends StatefulWidget {
   Function(LatLng pos) OnPositionChangeCallback;

googleMapComponent({
this.OnPositionChangeCallback,})

使用 nullsafety 我得到这个错误

The parameter 'OnPositionChangeCallback' can't have a value of 'null' because of its type, but the implicit default value is 'null'.

我知道使用 required 会解决它,但我不希望它是必需的

1 个答案:

答案 0 :(得分:1)

如果这个函数是 required 只需将参数设为必需,语言将强制您始终将函数传递给 googleMapComponent 的构造函数

class googleMapComponent extends StatefulWidget {
   Function(LatLng pos) OnPositionChangeCallback;

googleMapComponent({required this.OnPositionChangeCallback,})

否则使用 ? 关键字使函数可以为空。

这是这个问题的最终答案

final Function(LatLng pos)? OnPositionChangeCallback;