The argument type ‘List‘ can’t be assigned to the parameter type ‘UpdateMenuModel’

huangapple go评论62阅读模式
英文:

flutter : The argument type 'List<UpdateMenuModel>' can't be assigned to the parameter type 'UpdateMenuModel'

问题

如何解决这个模型问题。

我知道这是updateMenuDatabaseHelper.insert(data); 存储为UpdateMenuModel,所以我才会出现错误。
但是如何修复它。我不太明白。

//// updateMenuDatabaseHelper.insert(data); 这是我的SQFLITE数据库功能,我想要添加

List<UpdateMenuModel> data = [];
data.add(UpdateMenuModel(
    productId: menuData["ProductId"],
    productTitle: menuData["ProductTitle"],
    description: menuData["Description"],
    defaultPrice: menuData["DefaultPrice"],
    isVeg: menuData["DefaultPrice"] == true ? 0 : 1,
    fileName: menuData["FileName"] != null ? menuData["FileName"] : "",
    image: menuData["Image"],
    categoryId: menuData["CategoryId"],
    toppings: menuData["Toppings"] != null ? menuData["Toppings"] : "",
    itemNo: menuData["ItemNo"],
    sizes: menuData["Sizes"],
    isActive: menuData["IsActive"] == true ? 0 : 1,
    isTopping: menuData["IsTopping"] == true ? 0 : 1,
    addedOn: menuData["AddedOn"].toString(),
    isDelete: menuData["IsDelete"] == true ? 0 : 1,
    quantity: menuData["quantity"]));
}
updateMenuDatabaseHelper.insert(data);  ////这是我的SQFLITE数据库功能,我想要添加
Future<UpdateMenuModel> insert(UpdateMenuModel updateMenuModel) async {
    var dbClient = await db;
    await dbClient.insert('updateMenu', updateMenuModel.toJson());
    return updateMenuModel;
}
英文:

how to fix this Model issue.

I know This is updateMenuDatabaseHelper.insert(data); storing as UpdateMenuModel thats why I am getting error.
But how to fix it. I am not understanding.

//// updateMenuDatabaseHelper.insert(data); This is my SQFLITE database functionality where I want to add

List&lt;UpdateMenuModel&gt; data = [];
data.add( UpdateMenuModel(
              productId: menuData[&quot;ProductId&quot;],
              productTitle: menuData[&quot;ProductTitle&quot;],
              description: menuData[&quot;Description&quot;],
              defaultPrice: menuData[&quot;DefaultPrice&quot;],
              isVeg: menuData[&quot;DefaultPrice&quot;] == true ? 0 : 1,
              fileName:menuData[&quot;FileName&quot;] != null ? menuData[&quot;FileName&quot;] : &quot;&quot;,
              image: menuData[&quot;Image&quot;],
              categoryId: menuData[&quot;CategoryId&quot;],
              toppings:menuData[&quot;Toppings&quot;] != null ? menuData[&quot;Toppings&quot;] : &quot;&quot;,
              itemNo: menuData[&quot;ItemNo&quot;],
              sizes: menuData[&quot;Sizes&quot;],
              isActive: menuData[&quot;IsActive&quot;] == true ? 0 : 1,
              isTopping: menuData[&quot;IsTopping&quot;] == true ? 0 : 1,
              addedOn: menuData[&quot;AddedOn&quot;].toString(),
              isDelete: menuData[&quot;IsDelete&quot;] == true ? 0 : 1,
              quantity: menuData[&quot;quantity&quot;]));
        }
        updateMenuDatabaseHelper.insert(data);  ////This is my SQFLITE database functionality where I want to add
Future&lt;UpdateMenuModel&gt; insert(UpdateMenuModel updateMenuModel) async {
    var dbClient = await db;
    await dbClient.insert(&#39;updateMenu&#39;, updateMenuModel.toJson());
    return updateMenuModel;
  }

答案1

得分: 1

尝试这个:

尝试这个:

Future<void> insert(List<UpdateMenuModel> updateMenuModels) async {
  var dbClient = await db;
  final batch = dbClient.batch();
  for (var updateMenuModel in updateMenuModels) {
    batch.insert('updateMenu', updateMenuModel.toJson());
  }
  await batch.commit();
}
英文:

try this :

Future&lt;void&gt; insert(List&lt;UpdateMenuModel&gt; updateMenuModels) async {
  var dbClient = await db;
  final batch = dbClient.batch();
  for (var updateMenuModel in updateMenuModels) {
    batch.insert(&#39;updateMenu&#39;, updateMenuModel.toJson());
  }
  await batch.commit();
}

答案2

得分: 1

因为你的插入方法一次只接受一个模型,但你写的代码却将整个列表传递给了该插入方法,所以如果你想摆脱这个问题,你需要遍历每个值,逐个插入,或者如果你只想添加最后一个值,那么可以使用 data.last。

英文:

Simply because of your insert method is accepting one modal at a time but as you written was passing the whole list to that insert method so if you want to get rid of it you have loop through each value insert it one by one or if you want to add only last value then use can use data.last.

答案3

得分: 0

这将从List<UpdateMenuModel>中添加最后添加的UpdateMenuModel。

updateMenuDatabaseHelper.insert(data.last);

英文:

this will add the last added UpdateMenuModel from List<UpdateMenuModel>

updateMenuDatabaseHelper.insert(data.last);

huangapple
  • 本文由 发表于 2023年7月27日 19:56:41
  • 转载请务必保留本文链接:https://go.coder-hub.com/76779490.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定