Flutter动态TextField值合并为单一列表问题求助
解决Flutter动态TextField值合并为单一列表的问题
你的问题出在collectData方法里的print语句位置——它被放在了for循环内部,每往列表里添加一个TextField的值就打印一次,所以会输出11次逐步递增的列表。
只需要把print(descriptions)移到循环外面,就能只打印最终的完整列表:
void collectData() { descriptions.clear(); for (int index = 0; index < descriptionControllers.length; index++) { descriptions.add(descriptionControllers[index].text); } // 移到循环外,仅打印一次完整列表 print(descriptions); }
你也可以用Dart的map方法简化代码,替代for循环,写法更简洁:
void collectData() { descriptions = descriptionControllers.map((controller) => controller.text).toList(); print(descriptions); }
执行以上修改后,控制台只会输出一次包含所有TextField值的完整列表。
内容的提问来源于stack exchange,提问作者Ahmad
相关产品推荐
相关产品推荐

