我正在尝试集成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],
});