flutter 我如何根据条件getx渲染一个小部件?

00jrzges  于 2023-05-30  发布在  Flutter
关注(0)|答案(2)|浏览(236)

我无法使用GetX根据条件渲染小部件?

我得到的错误是:

[Get]检测到GetX的不正确使用。您应该只对要更新的特定小部件使用GetX或Obx。如果您看到此错误,则可能未将任何可观察变量插入GetX/Obx,或将其插入GetX认为适合更新的范围之外(例如:GetX => HeavyWidget => variableObservable)。如果您需要更新父部件和子部件,请将每个部件 Package 在Obx/GetX中。

验证码为:

GetX<ImageController>(builder: (co){
                      if(co.photo== null){
                        return  const Center(child: Text("pick img"));
                      }else{
                        return Text("${co.photo}");
                      }
                    }),
pw136qt2

pw136qt21#

你可以简单地使用Obx而不是GetX,它更容易,使用更少的代码。另外,当你使用GetX或Obx时,你需要在里面使用ann observable变量。这意味着你的照片在定义时应该在它的末尾有.obs。如下面的代码:

class Controller extends GetxController{
  var count = 0.obs;
  increment() => count++;
}

Obx(() => Text("Clicks: ${c.count}"))

它将工作,因为在Obx或Getx中有一个obs变量。

fykwrbwg

fykwrbwg2#

显示此错误是因为未提供ImageController。试试看

GetBuilder<ImageController>(init:ImageController(),builder:(co){
                  if(co.photo== null){
                    return  const Center(child: Text("pick img"));
                       }else{
                    return Text("${co.photo}");
                  }
                })

相关问题