gpt4 book ai didi

flutter - 使用 Obx,出现此错误 : [Get] the improper use of a GetX has been detected

转载 作者:行者123 更新时间:2023-12-05 09:32:04 27 4
gpt4 key购买 nike

请帮帮我。我做错了什么?我收到错误:[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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com