【问题标题】:How to access the static list from one dart file to another in flutter?如何在颤动中访问从一个飞镖文件到另一个飞镖文件的静态列表?
【发布时间】:2020-11-27 15:30:27
【问题描述】:

情况

firstScreen.dart 中的静态列表如下

static List<Shoe> shoeBank = [
    Shoe(b: "Red Shoe", i: "assets/nikeShoeProduct1.jpg", q: 0),
    Shoe(b: "White Shoe", i: "assets/nikeShoeProduct2.jpg", q: 0)
  ]; 

这是shoe.dart文件中的鞋类

class Shoe {
  String brand;
  int quantity;
  String image;
  Shoe({String b, int q, String i}) {
    brand = b;
    quantity = q;
    image = i;
  }
}

现在我想使用secondScreen.dart 文件中的shoeBank 列表。 如何做到这一点?

还有

我想在将参数传递给secondScreen.dart下面的组件CheckOutItems时使用shoeBank的值

CheckoutItems(
addedToCartNumber:use of shoeBank Over here ,
checkOutScreenProductImage:use of shoeBank Over here,
shoesName:use of shoeBank Over here; 

怎么做?

【问题讨论】:

  • firstScreen.shoeBank。你还有什么要找的吗
  • 你在哪里使用 List shoeList = FirstScreen.shoeBank;表示你是如何使用的?

标签: list flutter


【解决方案1】:

您可以使用FirstScreen.shoeBank 访问SecondScreen 中的static shoeBank

我在下面添加了一个示例:

第二屏

 class SecondScreen extends StatelessWidget {

   // access the static list using the class name
   List<Shoe> shoeList = FirstScreen.shoeBank;

   @override
   Widget build(BuildContext context) {
     // use the list here
     return CheckoutItems(
       // quantity
       addedToCartNumber: shoeList[0].quantity,
       // image
       checkOutScreenProductImage: shoeList[0].image,
       // shoe branch
       shoesName: shoeList[0].brand,
     );
   }
 }

第一个屏幕

 class FirstScreen extends StatelessWidget {
   // shoe bank static list here
   static List<Shoe> shoeBank = [
    Shoe(b: "Red Shoe", i: "assets/nikeShoeProduct1.jpg", q: 0),
    Shoe(b: "White Shoe", i: "assets/nikeShoeProduct2.jpg", q: 0)
  ]; 

   @override
   Widget build(BuildContext context) {
     return Container(
       
     );
   }
 }

【讨论】:

  • 使用 List&lt;Shoe&gt; shoeList = FirstScreen.shoeBank; 时会出现错误,例如,没有为类型“FirstScreen”定义吸气剂“shoeBank”
  • 您能否更新您的问题以显示有关此错误的更多详细信息?我提供的代码一切正常。
  • 现在它工作了,我必须在 Firstscreen 中做一个吸气剂
  • 使用时 this ` return CheckoutItems( // 数量 addedToCartNumber: shoeList[0].quantity, // 图像 checkOutScreenProductImage: shoeList[0].image, // 鞋支 shoesName: shoeList[0].品牌, ); ` 为什么会显示此错误?请参阅下面的评论
  • 用于访问shoeBank列表中的first element。确保您的 shoeBank 列表中有项目。
猜你喜欢
  • 2021-11-20
  • 2020-10-19
  • 1970-01-01
  • 1970-01-01
  • 2018-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
相关资源
最近更新 更多