首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GetX的不当使用已被检测到

GetX的不当使用已被检测到
EN

Stack Overflow用户
提问于 2021-08-01 15:20:46
回答 1查看 2.5K关注 0票数 2

我犯了这个错误。我在检查是否一个接一个的时候遇到了这个错误。我不知道我写的代码是怎么工作的。我想和你商量一下它是否有效。有人能帮忙解决这个问题吗?

代码语言:javascript
运行
复制
return Obx(() => _languageController.isLang == ''
    ? LanguageView()
    : controller.getCurrentUser == null
        ? LoginView()
        : _countryController.isLanguage == false
            ? CountryView()
            : HomeView());

[Get] the improper use of a GetX has been detected. 
  You should only use GetX or Obx for the specific widget that will be updated.
  If you are seeing this error, you probably did not insert any observable variables into 
GetX/Obx 
  or insert them outside the scope that GetX considers suitable for an update 
  (example: GetX => HeavyWidget => variableObservable).
  If you need to update a parent widget and a child widget, wrap each one in an Obx/GetX.
EN

回答 1

Stack Overflow用户

发布于 2021-08-02 03:15:12

要使上面的代码正常工作&而不是抛出您看到的错误,isLang必须是“可观察的”。

例如,类似于:

代码语言:javascript
运行
复制
class LanguageController extends GetxController {
  RxBool isLang = false.obs();
}

由于问题中的代码没有显示正在使用的isLang值(即isLang.value),我猜它是不可观察的。

在使用GetXObx小部件时,必须使用“可观察的”(RxBoolRxIntRx<Whatever>等)。控制器内部的常规intbool等不足以满足这一要求。GetXObx需要一种可观察的Rx类型。

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

https://stackoverflow.com/questions/68611804

复制
相关文章

相似问题

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