颤动手势对空值使用空检查运算符

问题描述 投票:0回答:1

我想问下图的问题。

这个问题与 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();
              },)),
            ],),
          ),
        )

      ],),
    ));
  }
}




android flutter dart
1个回答
0
投票

将函数声明为不可空函数:

final Function onYesPressed;

并确保您的构造函数中需要它:

const ConfirmPurchaseDialogWidget({super.key, required this.onYesPressed});

然后,不再需要在该函数上使用感叹号运算符:

onPressed: (){
   onYesPressed();
   Get.back();
  },
© www.soinside.com 2019 - 2024. All rights reserved.