List Dart全局类返回空列表

List Dart全局类返回空列表,list,flutter,dart,global,List,Flutter,Dart,Global,当我选择addItems时,它返回null。我不确定您使用此代码示例试图实现什么: 看起来您正在实现一个单例设计模式,但是您向工厂提供了一个参数。当您有以下代码时,您希望发生什么? 最终购物车1=购物车; cart1.addItemsfood1; cart2.addItemsfood2; 最终购物车2=购物车[food3,food4]; 购物车现在装的是什么 为什么要将_listofood初始化为[]两次 您的方法void addItemsFood food除了打印列表外,可能还应该称为addI

当我选择addItems时,它返回null。

我不确定您使用此代码示例试图实现什么:

看起来您正在实现一个单例设计模式,但是您向工厂提供了一个参数。当您有以下代码时,您希望发生什么? 最终购物车1=购物车; cart1.addItemsfood1; cart2.addItemsfood2; 最终购物车2=购物车[food3,food4]; 购物车现在装的是什么

为什么要将_listofood初始化为[]两次

您的方法void addItemsFood food除了打印列表外,可能还应该称为addItem或addFood。所以,是的,它什么也不返回

下面是这样一个Cart Singleton类的最简单的工作示例:

真空总管{ 最终购物车1=购物车; cart1.addFoodFoodname:“香蕉”; cart1.addFoodFoodname:“苹果”; cart1.addFoodFoodname:“橙色”; 最终购物车2=购物车; cart2.addFoodFoodname:‘芒果’; printcart1;//您的购物车包含:香蕉、苹果、橘子、芒果 printcart2;//您的购物车包含:香蕉、苹果、橘子、芒果 } 班车{ 静态最终购物车_实例=购物车。_内部; 列表_listOfFood=[]; 工厂购物车=>\u实例; 车内; 食物{ _添加食物; } String-toString=>'您的购物车包含:${u listofood.join','}'; } 等级食品{ 最后的字符串名; const Food{需要这个.name}; 字符串toString=>name; }
注意:在flatter中,与使用单例全局类相比,您有更好的方法来实现应用程序的状态。看看所有的。

正如我在最后所说的,注意在flifter中,实现应用程序状态的方法比使用单例全局类更好。看看所有这些。非常感谢你的帮助。我最初只实例化过一次。但是由于某种原因,当我尝试调用AddItem函数时,它总是返回一个错误,即在null上调用了方法“add”。即使在我尝试了你的方法之后。是的,我在尝试单例法。我想我还是试试提供商软件包吧。
class Cart {
  static final Cart _instance = Cart._internal();
  List<Food>  _listOfFood = [];
  factory Cart([List food])  => _instance;

  Cart._internal() {
     this._listOfFood = [];
}
void  addItems(Food food) {
 print(this.listOfFood);
 }