【发布时间】:2022-01-08 10:05:21
【问题描述】:
即使我已经为他们导入了库,我也无法将我的一个类分配给另一个类。我正在学习课程。在此,我将从 firebase 获取订单并显示订单屏幕。
Orderscreen(我得到错误的地方):
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../providers/orders.dart' show Orders;
import '../widgets/app_drawer.dart';
import 'package:shop_app/Widgets/OrderItem.dart';
class OrdersScreen extends StatelessWidget {
static const routeName = '/orders';
@override
Widget build(BuildContext context) {
print('building orders');
// final orderData = Provider.of<Orders>(context);
return Scaffold(
appBar: AppBar(
title: Text('Your Orders'),
),
drawer: AppDrawer(),
body: FutureBuilder(
future: Provider.of<Orders>(context, listen: false).fetchandSetOrders(),
builder: (ctx, dataSnapshot) {
if (dataSnapshot.connectionState == ConnectionState.waiting) {
return Center(child: CircularProgressIndicator());
} else {
if (dataSnapshot.error != null) {
// ...
// Do error handling stuff
return Center(
child: Text('An error occurred!'),
);
} else {
return Consumer<Orders>(
builder: (ctx, orderData, child) => ListView.builder(
itemCount: orderData.orders.length,
itemBuilder: (ctx, i) => OrderItem(orderData.orders[i])//getting error here
),
);
}
}
},
),
);
}
}
我的订单项类:
class OrderItem extends StatefulWidget {
final ord.OrderItem order;
OrderItem(this.order);
@override
State<OrderItem> createState() => _OrderItemState();
}
class _OrderItemState extends State<OrderItem> {
var _expanded = false;
@override
Widget build(BuildContext context) {
return Card(
margin: EdgeInsets.all(10),
child: Column(
children: [
ListTile(
title: Text('\$${widget.order.amount}'),
subtitle: Text(
DateFormat('dd/MM/yyyy/ hh:mm').format(widget.order.dateTime),
),
trailing: IconButton(
icon: Icon(_expanded
? Icons.expand_less_rounded
: Icons.expand_more_rounded),
onPressed: () {
setState(() {
_expanded = !_expanded;
});
},
)),
if (_expanded)
Container(
height: min(widget.order.products.length * 20.0 + 100, 180),
child: ListView(
children: widget.order.products
.map((prod) => Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(prod.title),
Text('${prod.quanitity}x \$${prod.price}')
],
))
.toList()
//min function will give min of two functions , if expanded is true then this will take place
,
),
),
],
),
);
}
}
我的订单类:
class OrderItem {
final String id;
final double amount;
final List<CartItem> products;
final DateTime dateTime;
OrderItem(this.id, this.amount, this.products, this.dateTime);
}
class Orders with ChangeNotifier {
List<OrderItem> _orders = [];
List<OrderItem> get orders {
return [..._orders];
}}
感谢大家的帮助。如果你能解释为什么我是一个新手,我会得到这个错误,这将是有帮助的
【问题讨论】:
标签: firebase flutter dart flutter-layout flutter-dependencies