You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Cubit中访问已emit状态内CartModal的具体属性?

解决Cubit状态中无法访问CartModal属性的问题

问题原因

你打印出Instance of 'CartModal'是因为:

  • Dart默认打印对象时只会输出类的实例标识,不会展示具体属性内容
  • 你通过state.props[0]获取实例的方式完全没必要,状态类里已经直接暴露了item属性

解决方案

1. 直接访问CartModal的具体属性

不用通过props取值,直接利用状态类的item属性访问字段:

if (state is CartStartStoreState) {
  // 直接访问storeId、storeName等属性
  print(state.item.storeId);
  print(state.item.storeName);
  print(state.item.finalPrice);
}

2. 重写CartModal的toString方法(可选,方便调试)

如果想打印整个CartModal对象时看到具体属性值,给CartModal类添加toString方法:

class CartModal {
  late int storeId;
  late String storeName;
  late String storeImg;
  List<CartProductListModal>? items;
  late String? finalPrice;

  CartModal({
    required this.storeId,
    required this.storeName,
    required this.storeImg,
    this.items,
    this.finalPrice,
  });

  // 重写toString方法,自定义打印内容
  @override
  String toString() {
    return 'CartModal(storeId: $storeId, storeName: $storeName, storeImg: $storeImg, finalPrice: $finalPrice)';
  }
}

之后再打印state.item,就能看到包含具体属性值的内容,而不是Instance of 'CartModal'。

内容的提问来源于stack exchange,提问作者Shady Hesham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 03:33:24