-2

当前代码

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
}

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

我希望将项目作为数组接收,并将商店作为对象。

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

4

2 回答 2

1

问题不在于论点的类型。

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

任何一个:

  1. 而是传递一个对象:

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

    storeSale保持与现在相同的状态,或者

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

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

    并让您对它的呼叫与您现在的呼叫相同。

于 2020-05-07T07:55:19.297 回答
0

storeSale 期待一个带有 { items, shop } 的对象

但是你给他2个参数

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

于 2020-05-07T07:56:28.370 回答