【发布时间】:2022-01-23 09:12:30
【问题描述】:
我有 Flutter 应用,而且我的应用中有很多 get 控制器
我的应用是餐厅类型的应用,在主屏幕中显示餐厅列表,当我点击任何餐厅卡片时,我会将用户导航到详细信息页面
所以我创建了两个控制器,一个是家庭控制器,第二个是 resDetail 控制器
当我在餐厅详细信息屏幕中按赞按钮时,我想在主屏幕的那家餐厅上添加赞,我不知道如何在颤振中实现它
当我尝试在 detailcontroller 中获取 homecontroller 上的实例时,它会抛出错误,例如使用 get.lazy put 我使用 get.lazy put 但仍然无法使用它
这里是代码示例:-
第一个控制器
class HomeController extends GetXController{
///This controller is for Home Screen
List<Restuarants> resList = <Restuarants >[];
void getRestaurants(){
//resList come from api
}
}
当我使用 api 改变餐厅的价值时,它会改变 resList 中餐厅的价值
第二控制器
///This controller is for Restaurant Detail Screen
class ResDetailController extends GetXController{
void likeRestauranrt(String resId){
ResponseItem result =
ResponseItem(data: null, message: errorText, status: false);
result = await HomeRepo().likeRestaurant(resToken, likeVal, userToken);
Loader().hideLoading();
try {
if (result.status) {
final val =
resList.firstWhere((item) => item.detail.resToken == resToken);
val.detail.isLike = likeVal == 1;
if (likedRestaurantList.isNotEmpty) {
for (int i = 0; i < likedRestaurantList.length; i++) {
if (likedRestaurantList[i].detail.resToken == resToken) {
likedRestaurantList.removeAt(i);
break;
}
}
}
resList[index].detail.isLike = likeVal == 1;
}
} catch (e) {
showAppSnackBar(errorText);
}
update();
}
}
【问题讨论】:
标签: android ios flutter dart flutter-getx