【问题标题】:React Native watermelon db collection returns undefinedReact Native 西瓜数据库集合返回未定义
【发布时间】:2019-11-04 15:24:28
【问题描述】:

提前致谢

我在 react native android 中使用西瓜数据库,它为集合返回 undefined。

 const handleDB = async () => {
    const myCollection = database.collections.get('data_items')

    await database.action(async () => {
      const newPost = await myCollection.create(post => {
        post.ItemID = 9
        post.ItemParentItem_ID = 8
      })
    })
  }

我从同一个功能组件中调用它

handleDB()

有什么办法解决

我的数据库

import { Database } from "@nozbe/watermelondb";
import SQLiteAdapter from "@nozbe/watermelondb/adapters/sqlite";
import { dbModel } from "./"
import { mySchema} from "./schema"

const adapter = new SQLiteAdapter({
    dbName: 'Northel',
    schema: mySchema
});

export const database = new Database({
    adapter,
    modelClasses: [dbModel],
    actionsEnabled: true,
});

如果我控制台日志 myCollection 我得到未定义。

我已将数据库导入为

import { database } from '../model/database'

【问题讨论】:

  • 当您从 Model.Net 正确扩展您的模型时,也会出现此问题。在我们的例子中,我们不小心使用了implements 而不是extends。也许它可以让其他人省去几个小时的艰苦搜索。
  • 你有没有发现是什么原因造成的?我也遇到了它,但我肯定正确设置了 WatermelonDB,因为我能够写入数据库但我的读取返回未定义。

标签: react-native watermelondb


【解决方案1】:

您是否正确定义了模型、模式和关系?在这里看看如何: Schema、Model 和 Relation。

如果一切正常,您是否稍后将此表添加到数据库中而不更新架构版本?如果是这样,请更新架构版本并重新安装您的移动应用程序。

如果这不起作用,请分享您的模型和架​​构定义,这将有助于识别问题。

【讨论】:

    【解决方案2】:

    同样的事情也发生在我身上。 确保您已完全配置数据库,在我的情况下,忘记将模型添加到 modelClasses []。

    【讨论】:

      【解决方案3】:

      这通常发生在您没有正确命名模型或在数据库设置中导入模型时

      【讨论】:

        猜你喜欢
        • 2015-07-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-20
        相关资源
        最近更新 更多