错误没有被设置为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();
})
});
},
未设置error
为true
。因为程序没有执行函数。因为这里要关注的部分是误差,Null check operator used on a null value
。
错误的含义是!
操作符在Null value
上使用
显示此错误是因为phoneNumber
出于某种原因是null
。因为OTPApi
函数没有执行,它抛出异常并退出执行。
在调用该函数之前检查phoneNumber是否为空。这应该可以解决您的问题
或
改变OTPApi(String phoneNumber, String otp)
OTPApi(String? phoneNumber, String otp)
希望有帮助!!