【发布时间】:2021-07-16 00:05:16
【问题描述】:
请帮助我。我做错什么了?我收到错误:
[Get] the improper use of a GetX has been detected.
这是代码:
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 的正确方法是什么?什么是正确的代码?
感谢您的帮助。
【问题讨论】:
-
您需要提供完整的代码/数据才能重现错误。顺便说一句,GetX 优先与无状态小部件一起使用。
标签: flutter dart flutter-getx