首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用notifyListeners()方法时,我在Textfield中输入的值返回到它们的初始值

调用notifyListeners()方法时,我在Textfield中输入的值返回到它们的初始值
EN

Stack Overflow用户
提问于 2022-03-10 13:31:49
回答 2查看 65关注 0票数 1

当我从AsyncSelectInputForm中更改"Ulke“值时,我调用notifyListeners()方法,使"Il”值为null。

当我这样做时,我在"Adres Başlığı“中输入的值返回到它的初始值。

我的小部件:

代码语言:javascript
复制
@override
  Widget build(BuildContext context) {
    var cariAdres = Provider.of<CariAdresProvider>(context);

    return  Column(
              children: [
                TextInputForm(
                    initialValue: cariAdres.cariAdres?.adresBasligi,
                    label: "Adres Başlığı",
                    onChanged: (value) {
                      cariAdres.cariAdresTemp =
                          cariAdres.cariAdresTemp?.copyWith(
                        adresBasligi: value,
                      );
                    },
                    ),

                //todo ulke select
                AsyncSelectInputForm(
                    pageTitle: "Ülke Seç",
                    label: "Ülke",
                    initialLabel: cariAdres.cariAdresTemp?.ulkeIdStr,
                    labelSetter: (item) {
                      return item.ulkeStr;
                    },
                   
                    onChanged: (value, item, context) {
                      cariAdres.cariAdresTemp =
                          cariAdres.cariAdresTemp?.copyWith(
                        ulkeId: value,
                        ulkeIdStr: item.ulkeStr,
                        ilId: null,
                        ilIdStr: null,
                      );
                      cariAdres.notifyListeners();

                    },
                    fetchPage: //...,
                   ),
                //todo il select
                AsyncSelectInputForm(
                    initialValue: cariAdres.cariAdresTemp?.ilId,
                    //... same code 
                   )
    //....

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-10 14:39:35

我的问题是,我已经将initialValue of TextInputForm设置为cariAdres.cariAdres?.adresBasligi值,并将cariAdres.cariAdresTemp?.ulkeIdStr值设置为AsyncSelectInputForm's initialLabel。

我能够通过将cariAdres.cariAdres?.adresBasligi值替换为cariAdres.cariAdresTemp?.adresBasligi值来解决这个问题。:)

票数 0
EN

Stack Overflow用户

发布于 2022-03-10 14:00:39

它可以有很多的可能性,所以我们不能确定哪一个是正确的。但是您可以尝试在构建方法中添加一些debugPrint,这样可以扩展对情况的理解。

另外,它可以是关于更改通知程序提供程序中的一些逻辑的,也可以是关于小部件树状态的,也可以是关于您的子部件的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71424967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档