我试图用列表构建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,
                    ),
                  ),
list - 无法使用列表创建ListView.builder-LMLPHP

最佳答案

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');
}

10-08 09:12