flutter - Flutter 在可见性小部件中维护表单的值
问题描述
我正在尝试使用可见性构建自定义步骤表单来隐藏和显示小部件,但我注意到一旦我隐藏小部件并尝试再次显示它,我的表单就会丢失值。
我有以下
int currentStep = 0;
void next(){
setState(() => _currentStep += 1)
}
void back(){
setState(() => _currentStep -= 1)
}
对于我拥有的小部件
var _nameCtl = TextEditingController();
@override
Widget build(BuildContext context) {
return(
Column(
children: [
Visibility(
visible: _currentStep ==0,
child: Column(children: [
TextFormField(
controller: _nameCtl,
decoration:InputDecoration(
labelText: 'Phone',
),
)
],
)
//other visibility with inputs
],
)
);
每当当前步骤的值发生变化并且我尝试返回输入时,文本输入中的值就会丢失。一旦可见性改变,有没有办法在输入上保持值
解决方案
像这样启用maintainState
,Visibility
...
Visibility(
maintainState: true,
...