【问题标题】:Is it fine to use .obs on Widgets after assing to var?分配给 var 后,可以在 Widgets 上使用 .obs 吗?
【发布时间】:2022-11-30 05:21:59
【问题描述】:

嘿,我想知道使用“.obs”来制作这样的小部件是否合适:

        var name= Text("foo").obs;
        return name.value;
   

【问题讨论】:

    标签: flutter-getx


    【解决方案1】:

    在整个小部件上使用 .obs,如下所示:

    Rx<Widget> textWidget = Text("test").obs;
    

    会工作正常,因为你可以在这个例子中尝试:

      // ...
       child: Obx(
            () => controller.textWidget.value,
          ),
    

    每次你给它分配一个value,它都会更新,但这会导致非常不必要地重新创建那个Text小部件,因为每次都会在你的用户界面中设置一个新的Text小部件,这可能会导致性能问题。

    相反,您应该将基本类型声明为 Rx observes,然后在您的 UI 小部件中分配它们:

    final textVal = "test".ons;
    
     child: Obx(
          () => Text(controller.textVal.value),
        ),
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-06
      • 1970-01-01
      • 2013-01-09
      • 2018-04-16
      • 2020-12-17
      • 1970-01-01
      • 2010-11-29
      相关资源
      最近更新 更多