替换重复字段以消除 - Flutter Form Builder 错误

Ott*_*res 6 formbuilder flutter

我正在使用flutter_form_builder,我想构建一个动态表单,例如在小部件上回答“是”或“否”,然后在其正下方弹出另一个小部件。

\n

例如:“病人吃了什么东西吗?” 是/否。如果是,则显示一个带有复选框“他们吃了什么?”的小部件。米饭、披萨等

\n

问题是,当我更改利尿收音机时,FormBuilder 会发出警告:\nI/flutter (21285):警告!替换活动的重复字段 - 只要有意替换该字段,就可以忽略这一点\nI/flutter (21285):警告!替换重复字段以消除 - 只要有意替换该字段,就可以忽略这一点\nI/flutter (21285):警告!忽略字段注销以进行消除——只要该字段被有意替换,就可以忽略它

\n

主要问题:那么,UI 上发生的情况是。假设我为“消除”卡选择“模拟”\n然后我更改了“利尿”卡上的选择,然后它抛出上面的错误,\n屏幕重建并且消除卡显示为未选择。

\n

我的代码如下。(HMClickableCard 只是一个具有卡片并在其中实现 FormBuilderRadioGroup 的小部件)

\n
Container(\n            child: HMClickableCard(\n                options: ["Sim", "N\xc3\xa3o"],\n                label: "Diurese",\n                name: "diuresis",\n                icon: Icons.bathroom,\n                iconSize: 30,\n                onChanged: (option) {\n                  _fbKey.currentState?.save();\n                  setState(() {\n                    switch (option) {\n                      case "Sim":\n                        _diuresis = true;\n                        break;\n                      case "N\xc3\xa3o":\n                        _diuresis = false;\n                        break;\n                    }\n                  });\n                }),\n          ),\n            Container(\n                child: FormBuilderCheckboxGroup(\n              name: "diuresisAspect",\n              options: [\n                FormBuilderFieldOption(value: "Clara"),\n                FormBuilderFieldOption(value: "Amarelo Ouro"),\n                FormBuilderFieldOption(value: "Avermelhada"),\n                FormBuilderFieldOption(value: "Odor forte"),\n                FormBuilderFieldOption(value: "Queixa de dor ao urinar"),\n              ],\n              decoration: InputDecoration(\n                  labelText: "Aspecto da diurese",\n                  labelStyle:\n                      TextStyle(fontSize: 20, fontWeight: FontWeight.bold)),\n            )),\n          Container(\n              child: HMClickableCard(\n            options: ["Sim", "N\xc3\xa3o"],\n            label: "Elimina\xc3\xa7\xc3\xa3o Intestinal",\n            name: "elimination",\n            icon: Icons.ac_unit,\n            iconSize: 30,\n            onChanged: (_option) {\n              _fbKey.currentState?.save();\n              setState(() {\n                switch (_option) {\n                  case "Sim":\n                    _intestinalElimination = true;\n                    break;\n                  case "N\xc3\xa3o":\n                    _intestinalElimination = false;\n                    break;\n                }\n              });\n            },\n          )),\n            Container(\n                child: FormBuilderCheckboxGroup(\n              name: "eliminationAspect",\n              options: [\n                FormBuilderFieldOption(value: "Bolinhas"),\n                FormBuilderFieldOption(\n                    value: "Moldadas (forma de salsicha)"),\n                FormBuilderFieldOption(value: "Pastosa"),\n                FormBuilderFieldOption(value: "L\xc3\xadquida")\n              ],\n              decoration: InputDecoration(\n                  labelText: "Aspecto da elimina\xc3\xa7\xc3\xa3o intestinal:",\n                  labelStyle:\n                      TextStyle(fontSize: 20, fontWeight: FontWeight.bold)),\n            )),\n
Run Code Online (Sandbox Code Playgroud)\n

有人知道如何解决这个问题吗?\n我用谷歌搜索,只能找到与不​​同键相关的内容(我只对整个表单使用 GlobalKey)或 FormFields 的相同名称(如您所见,情况并非如此)

\n