我试图用列表构建ListView.builder。
它向我显示此错误:无法将参数类型'CartItem'分配给参数类型'String'
这是我的代码:
class CartItem {
String name;
String quantity;
String price;
CartItem({
this.name,
this.quantity,
this.price,
});
}
List<CartItem> cartItem = [];
var _quantity = TextEditingController();
Widget cartList() {
if (cartItem.length != 0) {
return ListView.builder(
itemCount: cartItem.length,
itemBuilder: (context, index) {
return Text(cartItem[index]);
},
);
}
return Text('Nothing in Cart');
}
这是我的小部件方法的实现:RaisedButton(
elevation: 1,
color: Colors.blueGrey,
onPressed: () {
showDialog(
context: context,
builder: (BuildContext contex) {
return AlertDialog(
content: Column(
children: [
Text('Your Order List'),
Expanded(
child: cartList(),
)
],
),
);
},
);
},
child: Text(
'Conferm Order',
textAlign: TextAlign.end,
),
),
最佳答案
Text
窗口小部件需要String
作为参数,而cartItem[index]
返回CartItem
的实例,这就是您遇到错误的原因
你应该用
return Text(cartItem[index].name);
代替这个return Text(cartItem[index]);
样本代码Widget cartList() {
if (cartItem.length != 0) {
return ListView.builder(
itemCount: cartItem.length,
itemBuilder: (context, index) {
return Text(cartItem[index].name);
},
);
}
return Text('Nothing in Cart');
}