启动变量时面临问题



是否存在与EXId变量初始化有关的错误?它给了我这个错误:引发了另一个异常:LateInitializationError:字段"ExId"尚未初始化。

String? selectedValue;
late final int dID;
late final int staff_Id;
late final int ExId;
late String executiveName;
List<UserLogin> allUsers = [];
@override
void dispose() {
aptStatusController.dispose();
partyTypeController.dispose();
paymentModeController.dispose();
super.dispose();
}
@override
void initState() {
super.initState();
init();
}
Future init() async {
final allUsrs = await LoginController.users();
setState(() {
this.allUsers = allUsrs;
for (int i = 0; i < allUsrs.length; i++) {
this.staff_Id == allUsrs[i].userId;
this.executiveName == allUsrs[i].userName;
if (aptExecutiveController.text == this.executiveName) {
setState(() {
ExId == this.staff_Id;
});
}
}
});
}

late关键字用于声明稍后将初始化的变量。这些变量被称为不可为null的变量,因为它们在声明之后被初始化。

注意:一旦我们声明了一个不可为null的late变量,该变量在运行时就不能为null。

当您在if条件内初始化ExId变量时。因此,可能存在if条件不执行,导致ExId可以为空,从而打破late关键字约束的情况。

尝试这样声明ExId

int? ExId;

相关内容

  • 没有找到相关文章

最新更新