布尔变量没有更新?



错误没有被设置为true,为什么呢?即使在使用setState.之后

class _OtpState extends State<Otp> {
bool error = false;
OTPApi(String phoneNumber, String otp) async {

if (user.StatusCode == 0) {
KEY = user.Data!["CustomerKey"];
await prefs.setString('KEY', KEY!);
} else {
setState(() {
error = true;
});
}
}

API函数。错误:调用onChanged时抛出了以下_CastError:用于空值的空检查操作符

OTPApi(PhoneNumber!, pin).then((value) => {
showDialog(
context: context,
builder: (context) {
return error
? const AlertDialog(
title: Text("Verification Code"),
content: Text('wrong otp'),
)
: const Loading();
})
});
},

未设置errortrue。因为程序没有执行函数。因为这里要关注的部分是误差,Null check operator used on a null value

错误的含义是!操作符在Null value上使用

显示此错误是因为phoneNumber出于某种原因是null。因为OTPApi函数没有执行,它抛出异常并退出执行。

在调用该函数之前检查phoneNumber是否为空。这应该可以解决您的问题

改变OTPApi(String phoneNumber, String otp)OTPApi(String? phoneNumber, String otp)

希望有帮助!!

最新更新