如何在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
相关产品推荐
相关产品推荐

