VAR*_*RAN 2 get dart flutter flutter-get flutter-getx
这是我的完整代码...
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
class DialogHelper{
//show error dialog
static void showErrorDialog({String title='error',String description='Something went wrong'})
{
Get.dialog(
Dialog(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Text(title,style: Get.textTheme.headline4,),
Text(description,style: Get.textTheme.headline6,),
ElevatedButton(onPressed: () {
if (Get.isDialogOpen) Get.back();
},
child: Text('okay')),
],
),
),
),
);
}
}
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误
19:25:错误:“bool?”类型的值 无法分配给“bool”类型的变量,因为“bool?” 可以为空,而 'bool' 则不能。if (Get.isDialogOpen) Get.back();
如果条件 Get.isDialogOpen 线上出现错误
您收到该错误是因为 getterisDialogOpen返回一个可选值。这意味着返回值可以是 atrue或falsea null。但是,由于 if 条件只能使用布尔值,因此 SDK 会告诉您如果isDialogOpen返回 null 将会出现错误。
因此,要解决这个问题,要么告诉编译器您确定 getter 永远不会返回 null,要么必须给出一个默认值,以防从.isDialogOpen. 我们分别这样做;
1-
Get.isDialogOpen! \\ this means you are sure a null can't be returned
Run Code Online (Sandbox Code Playgroud)
2-
Get.isDialogOpen ?? false \\ this means incase a null is returned use false
Run Code Online (Sandbox Code Playgroud)
注意:如果您使用数字 1,并且最终返回 null,则您的代码将在运行时崩溃。isDialogOpen为了避免这种情况,您可以告诉编译器仅在已初始化时才调用它。IE
Get?.isDialogOpen ?? false \\If isDialogOpen is not initialized, false will be used
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9730 次 |
| 最近记录: |