微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法在 ValueListenableBuilder

如何解决无法在 ValueListenableBuilder

我需要更新 ListView 小部件内的列表,所以我设置了一个 valuenotifierbuilder,如下所示:

final ValueNotifier<ModelRegis> modelFoto =
      ValueNotifier<ModelRegis>(ModelRegis());

模型的结构是这样的

class ModelRegis {
  String loadFoto;
  bool adaFoto;
  int idFotoUser,index;
  List<Widget> independentFoto;
  ModelRegis(
      {this.loadFoto = "done",this.adaFoto = false,this.idFotoUser,this.index,this.independentFoto});
}

这是我尝试使用 ValueListenableBuilder 更新小部件的方法

ValueListenableBuilder(
                                            valueListenable: modelFoto,builder: (_,val,__) {
                                              List<Widget> listFuture = [];

                                              if (val.adaFoto) {
                                                
                                                Widget dummyList =
                                                    Text("after click");
                                                List temp = val.independentFoto;
                                                temp[val.index] = dummyList;
                                                modelFoto.value = ModelRegis(
                                                    loadFoto: modelFoto
                                                        .value.loadFoto,adaFoto:
                                                        modelFoto.value.adaFoto,idFotoUser: modelFoto
                                                        .value.idFotoUser,index:
                                                        modelFoto.value.index,independentFoto: temp);
                                                // modelFoto.notifyListeners();
                                                print("2. $temp");
                                                print(
                                                    "2. ${val.independentFoto}");

                                                // modelFoto.notifyListeners();

                                                return ListView(
                                                    physics:
                                                        const AlwaysScrollableScrollPhysics(),shrinkWrap: false,children:
                                                        val.independentFoto);
                                              }

我尝试打印val.independentFoto,结果是这样的

[Text("after click"),FutureBuilder<dynamic>,FutureBuilder<dynamic>]

但是ListView中的返回结果总是不更新,所以会返回一个由这样的widget组成的List

[FutureBuilder<dynamic>,FutureBuilder<dynamic>]

返回结果不会在第一个索引处将小部件更新为 Text("after click") 是否有正确的方法来更新 ValueListenableBuilder 中的小部件列表?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。