首页 > 解决方案 > 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
    ],
  )

);

每当当前步骤的值发生变化并且我尝试返回输入时,文本输入中的值就会丢失。一旦可见性改变,有没有办法在输入上保持值

标签: flutterdart

解决方案


像这样启用maintainStateVisibility

...
Visibility(
  maintainState: true,
...

推荐阅读