我想问下图的问题。
这个问题与 dart null 安全性有关,但我无法解决这个问题。
错误出现在 onYesPressed!()
每次我单击“确认”或“是”按钮时,总是会出现这样的错误,请帮忙。 谢谢你
还有我的代码
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:kt_pos/util/color_resources.dart';
import 'package:kt_pos/util/dimensions.dart';
import 'package:kt_pos/util/images.dart';
import 'package:kt_pos/common/widgets/custom_button_widget.dart';
class ConfirmPurchaseDialogWidget extends StatelessWidget {
final Function? onYesPressed;
const ConfirmPurchaseDialogWidget({Key? key, required this.onYesPressed}) : super(key: key);
@override
Widget build(BuildContext context) {
return Dialog(
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(Dimensions.paddingSizeSmall)),
child: Container(padding: const EdgeInsets.all(Dimensions.paddingSizeExtraLarge),
height: 210,
child: Column(children: [
SizedBox(width: 70,height: 70,
child: Image.asset(Images.confirmPurchase),),
Text('confirm_purchase'.tr),
Padding(
padding: const EdgeInsets.all(Dimensions.paddingSizeDefault),
child: SizedBox(height: 40,
child: Row(children: [
Expanded(child: CustomButtonWidget(buttonText: 'cancel'.tr,
buttonColor: Theme.of(context).hintColor,textColor: ColorResources.getTextColor(),isClear: true,
onPressed: ()=> Get.back())),
const SizedBox(width: Dimensions.paddingSizeDefault),
Expanded(child: CustomButtonWidget(buttonText: 'yes'.tr, onPressed: (){
onYesPressed!();
Get.back();
},)),
],),
),
)
],),
));
}
}
将函数声明为不可空函数:
final Function onYesPressed;
并确保您的构造函数中需要它:
const ConfirmPurchaseDialogWidget({super.key, required this.onYesPressed});
然后,不再需要在该函数上使用感叹号运算符:
onPressed: (){
onYesPressed();
Get.back();
},