Realm、React Native 嵌入式对象示例

Realm, React Native embedded object example

我正在寻找使用嵌入式对象将 realm 与 React Native + TypeScript 结合使用的任何具体示例。

通常您可以提供部分属性对象以发送到领域以进行 CRUD 操作:

realm.write(() => {
  realm.create<SomeSchemaObject>(
    SchemaObject.schema.name,
    {
        id: 1,
        someListType: ??? // where someListType is an embedded schema object.
    },
    UpdateMode.Modified
  )
}

使用打字稿并为嵌入对象提供部分属性数组时,我遇到了类型错误。我搜索了 Realm-JS 存储库和文档,但似乎没有任何使用打字稿和嵌入式对象的示例。

在问这个问题之前我应该​​自己更努力地挖掘一下。无论如何,我设法弄明白了。对于一些设置,我不直接在我的应用程序中使用领域实体,我实际上将这些实体转换为 DTO。我的 DTO 都实现了一个接口,该接口定义了一个方法来为 insert/update 操作获取 属性 对象。以前我输入 return 对象是部分的,而实际上我应该使用 RealmInsertionModel。

希望这对其他人有所帮助。

toRealmInsertionModel(): RealmInsertionModel<UserSessionEntity> {
    // In my schema UserSessionEntity has an embedded list of ScopeEntity.
    const entities: RealmInsertionModel<ScopeEntity>[] = this.scopes.map(
      scopeDto => scopeDto.toRealmInsertionModel(),
    );

    return {
      id: this.id,
      accessToken: this.accessToken,
      refreshToken: this.refreshToken,
      idToken: this.idToken,
      tokenType: this.tokenType,
      scopes: entities,
    };
}