【问题标题】:How do you pass an array and an object as an argument in Javascript?如何在 Javascript 中将数组和对象作为参数传递?
【发布时间】:2020-05-07 07:53:25
【问题描述】:

当前代码

async onPressAdd() {
  // at this moment, items is an array and shop is an object
  db.storeSale(items, shop);
}

在不同的文件中

storeSale = async ({ items,shop }) => {
  console.log(items); // undefined
  console.log(shop);  // not object
}

我试图传递一个数组和一个对象作为参数,但它不像上面的代码那样工作。

我想以数组的形式接收商品并以对象的形式购物。

如果您能给我任何建议,我将不胜感激。

【问题讨论】:

  • 您的代码尝试解构第一个参数。只需使用async (items, shop) =>

标签: javascript react-native


【解决方案1】:

问题不在于参数的类型。

您正在解构storeSale 中的参数列表,这意味着它需要一个参数:具有itemsshop 属性的对象。但是你传递给它的是两个离散的参数。

要么:

  1. 改为传递一个对象:

    async onPressAdd() {
      db.storeSale({items, shop})
      // −−−−−−−−−−^−−−−−−−−−−−^
    }
    

    并保持storeSale 与现在相同,或者

  2. 通过从参数列表中删除{},让storeSale 接受离散参数:

    storeSale = async (items, stop) => {
    // −−−−−−−−−−−−−−−^−−−−−−−−−−−^−−−− no {} here
    

    并保持您对它的调用与您现在的调用相同。

【讨论】:

    【解决方案2】:

    storeSale 需要一个对象 { 项目, 店铺 }

    但是你给了他 2 个参数

    试试 db.storeSale({items, shop});

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-17
      • 1970-01-01
      • 2017-05-20
      • 2018-02-23
      • 2012-05-30
      • 2012-11-25
      • 1970-01-01
      • 2021-04-15
      相关资源
      最近更新 更多