6

我正在尝试集成WatermelonDb到我的 React Native App 中。我收到一条错误消息,提示 undefined 不是对象(正在评估 adapter.schema)

我关注了这个 GitHub 问题 https://github.com/Nozbe/WatermelonDB/issues/40 但它没有给出任何解决方案

我按照以下步骤进行安装

yarn add @nozbe/watermelondb
yarn add @nozbe/with-observables
yarn add --dev @babel/plugin-proposal-decorators

我创建了一个.babelrc文件并添加了以下内容

{
  "presets": ["module:metro-react-native-babel-preset"],
  "plugins": [
    ["@babel/plugin-proposal-decorators", { "legacy": true }]
  ]
}

我在 Xcode 中打开了我的项目

我创建了一个空swift文件,当Xcode被要求创建时Briding Header,我也创建了它

这是截图

在此处输入图像描述

我使用的是 React Native 0.60,所以我没有在终端中运行链接命令。

我还创建了一个单独的项目,我尝试react-native link @nozbe/watermelondb在其中运行React Native版本为 0.60.5 并且在 iOS 模拟器上运行应用程序时,本机反应会抛出警告说链接会自动发生,因此我运行了取消链接,react-native unlink @nozbe/watermelondb 但无论是链接还是链接,我仍然面临同样的问题不是。

这是我的示例代码

import {appSchema, tableSchema} from '@nozbe/watermelondb';

export const mySchema = appSchema({
  version: 1,
  tables: [
    tableSchema({
      name: 'users',
      columns: [
        {name: 'user_name', type: 'string'},
        {
          name: 'age',
          type: 'number',
          isOptional: true,
        },
        {name: 'is_male', type: 'boolean'},
      ],
    }),
  ],
});

import {Model} from '@nozbe/watermelondb';
import {field} from '@nozbe/watermelondb/decorators';

export default class Users extends Model {
  static table = 'users';

  @field('user_name') userName;
  @field('age') age;
  @field('is_male') isMale;
}

在 index.js 中

const database = new Database({
  modelClasses: [Users],
});
4

0 回答 0