作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
请帮帮我。我做错了什么?我收到错误:[Get] 检测到 GetX 的不当使用。
这是代码:
class MealRecipesItem extends StatefulWidget {
const MealRecipesItem({
Key? key,
@required this.gender,
this.item,
}) : super(key: key);
final int? gender;
final Data? item;
@override
_MealRecipesItemState createState() => _MealRecipesItemState(item?.id);
}
class _MealRecipesItemState extends State<MealRecipesItem> {
final itemId;
_MealRecipesItemState(this.itemId) {
Get.put(RecipeDetailController(), tag: itemId);
}
@override
Widget build(BuildContext context) {
var controller = Get.find<RecipeDetailController>(tag: itemId);
_toggleFavorite() {
controller.toggleFavorite(widget.item?.databaseId);
}
return Material(
child: InkWell(
onTap: _toggleFavorite,
child: Container(
child: Obx(() { // ====**** ERROR IN THIS LINE ****====
if (controller.isLoading) {
return CircularProgressIndicator();
}
if (controller.resultToggleFavorite?.isUserFavorite ?? false) {
return Icon(
Icons.favorite,
);
}
return Icon(
Icons.favorite_border,
);
}),
),
),
);
}
}
在我的案例中,使用 Obx 的正确方法是什么?正确的代码是什么?
感谢您的帮助。
最佳答案
似乎您的 Controller 变量都不可观察(例如,isLoading
)。它们不是 Rx 类型,而是普通的 dart 类型。 Obx 或 GetX 仅用于 observables(.obs) 或 Rx 变量。它们就像 StreamBuilder。
因此,如果您不使用可观察对象,则无需使用 Obx 或 GetX。或者您可以使您的变量可观察。
关于flutter - 使用 Obx,出现此错误 : [Get] the improper use of a GetX has been detected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68402045/
我是一名优秀的程序员,十分优秀!