dart 给予`TextFormField`动态控制器

a14dhokn  于 2023-06-19  发布在  其他
关注(0)|答案(2)|浏览(75)

我有一个函数,可以从firebase加载数据到TextFormField。我们是否可以将controller提供给由以下函数创建的TextFormField

loadDataToTextFormField(
      QuerySnapshot mySnapshot,
      int index,
      String databaseField,
      String? bulletsAndNumberingType,
      TextStyle textStyle) {
    List getDataList = List.from(mySnapshot.docs[index][databaseField]);
    return Column(
      children: [
        for (var i in getDataList)
          Align(
            alignment: Alignment.centerLeft,
            child: TextFormField(
                //  controller: ?? how to supply controller here,
                initialValue:
                    "$bulletsAndNumberingType  $i", 
                style: (textStyle)
                ),
          ),
      ],
    );
  }
}

任何帮助将是高度赞赏。谢谢

zte4gxcn

zte4gxcn1#

您可以使用以下函数为TextFormField提供控制器。

loadDataToTextFormField(
      QuerySnapshot mySnapshot,
      int index,
      String databaseField,
      String? bulletsAndNumberingType,
      TextStyle textStyle) {
    List getDataList = List.from(mySnapshot.docs[index][databaseField]);
    List<TextEditingController> textEditingControllerList =
        List<TextEditingController>.filled(
            getDataList.length, TextEditingController());

    return Column(
      children: [
        for (var i in getDataList)
          Align(
            alignment: Alignment.centerLeft,
            child: TextFormField(
                controller: textEditingControllerList[i],
                initialValue: "$bulletsAndNumberingType  $i",
                style: (textStyle)),
          ),
      ],
    );
  }
ql3eal8s

ql3eal8s2#

对不起,我忘了TextFormField不能同时拥有controller和'initialValue'两个属性。它可以是controller或'initialValue'。

相关问题