我不确定为什么我的异步函数在我的表单有效后没有触发。我正在打印刷声明。关于为什么的任何线索?
Align(
alignment: Alignment.center,
child: GestureDetector(
onTap: (() {
if (_formKey.currentState!.validate()) {
print('Form is Valid');
() async {
setState(() {
isLoading = true;
});
await signIn();
setState(() {
isLoading = false;
});
};
return;
}
}),
child: !isLoading
? Container(
decoration: BoxDecoration(
color: Colors.blue[500],
borderRadius: BorderRadius.circular(12)),
child: const Padding(
padding: EdgeInsets.symmetric(
horizontal: 65.0, vertical: 15),
child: Text(
'Sign in',
style: TextStyle(
fontSize: 18,
color: Colors.white,
fontWeight: FontWeight.bold),
),
),
)
: const CircularProgressIndicator(),
),
),
我试过弄乱我的表单验证器,我希望能够很好地击中
setState()
集团,但我没有,它似乎就在之前停止了。
您正在创建语法为的内联函数
(){
/// yourTask
}()
您缺少调用函数。而且不需要嵌套代码,你可以这样做
Align(
alignment: Alignment.center,
child: GestureDetector(
onTap: () async {
final bool isValided = _formKey.currentState?.validate() ?? false;
if (isValided) {
print('Form is Valid');
setState(() {
isLoading = true;
});
await signIn();
setState(() {
isLoading = false;
});
}
},
),
)