在初始化期间读取静态变量|扑 [英] Reading static variable during its initialization | Flutter
问题描述
我一直试图将静态数据加载到ListViewBuilder中,我使用下面给出的相同代码成功实现了该功能,但现在无法正常工作.
I have been trying to load static data into ListViewBuilder I successfully achieved the functionality using the same code given below but now it ain't working.
列表查看器
ListView.builder(
scrollDirection: Axis.horizontal,
shrinkWrap: true,
itemCount: allProducts.length==null ? 0 : allProducts.length,
itemBuilder: (BuildContext ctxt, int index) {
return new CustomCardProduct(
product:allProducts[index],
onPress: (){
);
},
);
},
),
USER.DART文件中存储的静态数据和类别.
List<Product> allProducts= [
Product(title: 'Quran Classes',price: 5000,description: "Hello World",likes: 4,mainImage: 'assets/quranforkidssample.jpg',galleryImages: galleryImages,serviceType: 'Home Based',user: user1,category: categories[0]),
Product(title: 'Quran Classes',price: 5000,description: "Hello World",likes: 4,mainImage: 'assets/quranforkidssample.jpg',galleryImages: galleryImages,serviceType: 'Home Based',user: user1,category: categories[0]),
Product(title: 'Quran Classes',price: 5000,description: "Hello World",likes: 4,mainImage: 'assets/quranforkidssample.jpg',galleryImages: galleryImages,serviceType: 'Home Based',user: user1,category: categories[0]),
Product(title: 'Quran Classes',price: 5000,description: "Hello World",likes: 4,mainImage: 'assets/quranforkidssample.jpg',galleryImages: galleryImages,serviceType: 'Home Based',user: user1,category: categories[0]),
Product(title: 'Quran Classes',price: 5000,description: "Hello World",likes: 4,mainImage: 'assets/quranforkidssample.jpg',galleryImages: galleryImages,serviceType: 'Home Based',user: user1,category: categories[0]),
];
User user1= User(
id: 0,
name: 'User Name',
imageUrl: 'assets/momina.jpg',
cnicPicture: '',
contactNumber: '0335-2366331' ,
city: 'Karachi',
followers: 100,
following: 200,
rating: 2.5,
area: 'Defence',
);
List<Category> categories=[
Category(name: 'Education',icon: FontAwesomeIcons.pen),
Category(name: 'Education',icon: FontAwesomeIcons.hackerNews),
Category(name: 'Education',icon: FontAwesomeIcons.pen),
Category(name: 'Education',icon: FontAwesomeIcons.pen),
Category(name: 'Education',icon: FontAwesomeIcons.pen),
Category(name: 'Education',icon: FontAwesomeIcons.pen),
Category(name: 'Education',icon: FontAwesomeIcons.pen),
];
List<String> galleryImages = [
'assets/quranforkidssample.jpg',
'assets/quranforkidssample.jpg',
'assets/quranforkidssample.jpg',
'assets/quranforkidssample.jpg',
];
class User {
final int id;
final String name;
final String imageUrl;
final String cnicPicture;
final String contactNumber;
final String city;
final String email;
final int followers;
final int following;
final List<Product> productList;
final double rating;
final String area;
User({this.area,this.id,this.name, this.imageUrl, this.cnicPicture, this.contactNumber, this.city, this.email, this.followers, this.following, this.productList, this.rating});
}
class Product{
final String title;
final int price;
final String description;
final Category category;
final int likes;
final User user;
final String mainImage;
final List<String> galleryImages;
final serviceType;
Product({this.serviceType,this.title, this.price, this.description, this.category, this.likes, this.user, this.mainImage, this.galleryImages});
}
class Category{
final String name;
final IconData icon;
Category({this.name, this.icon});
}
应用程序加载后,在红色框中显示错误.说在初始化期间读取静态变量所有产品".我不想在单独的文件夹中调用此数据文件,因为我将通过构造函数传递数据我的allProduct对象列表为null!但是为什么???
When the application has loaded, it gives an error in the Red box. saying Reading static variable "all products" during its initialization. I don't want to call this data file in the separate folders as I will be passing on data through constructors my allProduct Object List is null! but why ???
推荐答案
您要做的就是更改为allProducts.data [index]而不是allproducts [index],将allProducts.data.length更改为allProducts.length您的ListView.builder.
All you need to do is change to allProducts.data[index] instead of allproducts[index], and allProducts.data.length instead of allProducts.length in your ListView.builder.
ListView.builder(
scrollDirection: Axis.horizontal,
shrinkWrap: true,
itemCount: allProducts.data.length==null ? 0 : allProducts.data.length,
itemBuilder: (BuildContext context, int index) {
return new CustomCardProduct(
product:allProducts.data[index],
onPress: (){
);
},
);
},
),
这篇关于在初始化期间读取静态变量|扑的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!