首页 > 解决方案 > WatermelonDB - 执行批量插入时出错

问题描述

在我的 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);
      }
    });
  }

标签: react-nativereact-native-androidwatermelondb

解决方案


问题出在 async 关键字上。

return messages.map(message => {

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


推荐阅读