0

在我的 React Native Android 应用程序中,我在 WatermelonDB 上创建了一个表。当我使用批处理从组件向表中插入新记录时,我收到TypeError: Cannot read property 'id' of undefined批处理中抛出的错误。

这是使用Promise对象列表调用批处理的地方:

await database.action(async () => {
              const allRecords = this.prepareInsertion(smsTransaction, records);
              await database.batch(...allRecords);
              console.log(allRecords.length);
            });
prepareInsertion(smsTransaction, messages) {
    return messages.map(async message => {
      try {
        return smsTransaction.prepareCreate(transaction => {
          const parsedFields = parseFields(message);
          transaction.type = parsedFields.type;
          transaction.read_at = parsedFields.read_at;
        });
      } catch (e) {
        console.log(e);
      }
    });
  }
4

1 回答 1

0

问题出在 async 关键字上。

return messages.map(message => {

要传递给 database.batch 的模型,而不是 Promises。

于 2020-03-12T12:11:38.843 回答