【问题标题】:problem related to null safety i can fix it与空安全相关的问题我可以解决
【发布时间】:2022-07-19 15:09:00
【问题描述】:

我遇到了这个关于 null 安全性的错误,我无法解决它

HomeModel? homeModel;

  Map<int, bool> favorites = {};

  void getHomeData() {
    emit(ShopLoadingHomeDataState());

    DioHelper.getData(
      url: HOME,
      token: token,
    ).then((value) {
      homeModel = HomeModel.fromJson(value?.data);

      printFullText(homeModel!.data!.banners[0].image!);
      print(homeModel?.status);
      
      homeModel!.data!.products.forEach((element) {
        favorites.addAll({
          element.id! : element.inFavorites!,
        });
      });

      emit(ShopSuccessHomeDataState());
    });

这里出现错误

backgroundColor: ShopCubit.get(context).favorites[model.id] ? defaultColor : Colors.grey ,

然后说:“可以为空的表达式不能用作条件。 在将其用作条件之前,请尝试检查该值是否不为 'null'。"

请帮帮我

【问题讨论】:

  • ShopCubit.get(context).favorites[model.id] 我猜可能在某个时候返回 null,这不是布尔值。您可以将其改写为 (ShopCubit.get(context).favorites[model.id] ?? false) 来修复它? ... : ...

标签: flutter dart dart-null-safety


【解决方案1】:

defaultColor 一定是加了like

Color? defaultColor = Colors.red;

做起来

Color defaultColor = Colors.red;

删除 ?颜色后

【讨论】:

    猜你喜欢
    • 2011-09-09
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-05
    • 2016-05-03
    相关资源
    最近更新 更多