Попытка получить список из магазина, используя модель, которая работает без модели, но не с ней.
В StatefulWidget я получил пустой список продуктов. в основном происходит от модели, как это
class Product {
int id;
String title, price, message;
Product(this.id, this.title, this.price, this.message);
}
Список таких товаров
import 'package:presentation_app/models/product.dart';
class _ProductsListState extends State<ProductsList> {
List<Product> products = [];
@override
Widget build(BuildContext context) {
return Scaffold(
...
затем добавил StreamBuilder
с коллекцией firestore
, подобной этой
StreamBuilder(
stream: Firestore.instance.collection('products').snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot){
if (!snapshot.hasData) return CircularProgressIndicator();
return BuildListView(products);
}
),
и в классе BuildListView
я назвал список продуктов и использовал его следующим образом:
class BuildListView extends StatelessWidget {
final List<Product> products;
BuildListView(this.products);
в listViewBuilder
Затем я попытался получить доступ к данным следующим образом:
ListView.builder(
itemCount: products.length,
itemBuilder: (BuildContext context, int index) {
int id = products[index].id;
String title = products[index].title;
String message = products[index].message.toString();
String price = products[index].price.toString();
Я получаю CircularProgressIndicator
, но после завершения загрузки ничего не появляется.
, используя этот подход, он работает, но, конечно, не с моделью
body: StreamBuilder(
stream: Firestore.instance.collection('products').snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot){
if (!snapshot.hasData) return CircularProgressIndicator();
return BuildListView(products: snapshot.data.documents);
}
),
);
}
}
class BuildListView extends StatelessWidget {
final List<DocumentSnapshot> products;
BuildListView({this.products});
...