我目前正在使用Redux与Flutter进行项目。
我非常喜欢使用Redux时,大多数小部件都可以保留为StatelessWidget
,而不是管理StatefulWidget
内部的状态。
但是我遇到了一些问题。
class MyForm extends StatelessWidget {
GlobalKey<FormState> formKey = GlobalKey<FormState>;
@override
Widget build(BuildContext context) {
return Form(
key: formKey,
child: TextFormField(
autofocus: true
validator: someValidatorLogic
)
)
}
}
我需要的是formKey
来进行验证,当按下按钮时,并且我需要在TextFormField
上聚焦到过渡到屏幕上。
由于formKey
是类参数,因此似乎每次都会更改。因此,发生的是TextFormField每次都自动散焦。
当前,我将GlobalKey存储在Redux存储中,但是将它存储在Redux存储中确实感觉很不对劲,因为我觉得GlobalKey是视图的参数。存储此密钥的正确方法是什么?
谢谢
答案 0 :(得分:0)
有几种可能性:
StatefulWidget
。总体上首选的解决方案。答案 1 :(得分:0)
转换到 statefulWidget 和这个代码 final _formKey = GlobalKey();