标签: realm-js

在领域侦听器回调中调用setState时,直到点击屏幕,UI才会更新

更新

描述

我在Realm对象上有一个侦听器,用于获取更新。当服务器(或客户端)上有更新时,提供给侦听器的函数将调用setState({})。

奇怪的是,即使控制台说一切正常,并且表明render方法是用正确的数据调用的,我也看不到我的应用程序有任何更新。

如果我随机地(在1s,2s,20s ...之后)点击屏幕,UI会神奇地更新,并且一切正确。

如果我使用从按钮调用的函数执行相同的setState,那么我猜是因为按钮的动画触发了UI更新。

感谢您阅读本文。

制作步骤

您必须更新server_url和凭据才能工作。

react-native初始化测试npm install realm react-native链接域

由于领域尚未为64位做好准备,因此您还必须确保仅在32位中进行编译,以避免启动时应用崩溃

使用此代码:

App.js

import React, {Component} from 'react';
import {Platform, StyleSheet, Text, View} from 'react-native';

import Realm from 'realm'

import { SERVER_URL } from "./config/realm";
import { Utente } from "./config/schema";


export default class App extends Component {

  loginAsync = async () => {

    var realm_user = Realm.Sync.User.current

    if(!realm_user){
      const credentials = Realm.Sync.Credentials.usernamePassword('admin', '******' ,false);
      realm_user = await Realm.Sync.User.login(SERVER_URL, credentials);
    }

    const config = realm_user.createConfiguration({
      schema: …
Run Code Online (Sandbox Code Playgroud)

android realm reactjs react-native realm-js

8
推荐指数
2
解决办法
487
查看次数

在我的本机应用程序中将文件备份到 icloud

寻找 react-native 库或开发方法来存档以下内容:

我的用例

在我的本机应用程序中,我想将图片(由用户拍摄)和其他文件(如用户数据库“realm.db(来自 realmjs)”)与用户 iCloud 驱动器同步。

我是否需要使用 cloudkitjs 将所有文件上传到网络,或者是否可以将文件放入特定的应用程序目录中,并且每次用户更新 iphone 设备时 -> 应用程序都会自动同步?

我已经尝试过的

  • 在我的应用程序中激活 iCloud 支持
  • 创建 iCloud 容器

要求

  • 一切都应该在用户/客户 iCloud 驱动器中同步
  • 不想关心 GDPR 指南
  • 只有一个 iOS 应用程序存在......无需在 MacOS 和 iOS 之间同步数据

我的堆栈

  • 反应原生 0.60
  • 打字稿

非常感谢让我朝着正确方向前进的任何帮助。

realm icloud cloudkit react-native realm-js

6
推荐指数
0
解决办法
654
查看次数

如何为以数组为值的对象(或字典)的属性定义领域模式?

我有这样的数据

PersonJSONData = {
    "key1": {
        "name": "odo",
        "age": 10,
        "favorites": {
            "food": ["rice", "chocolate", "sugar"],
            "game": [],
            "color": ["red"]
        },
    "key2": {
        "name": "yana",
        "age": 50,
        "favorites": {
            "band": [],
            "food": ["eggs"],
            "book": ["ABC", "how to cook"]
        }
    },
    ...
}}
Run Code Online (Sandbox Code Playgroud)

如何在realmfor中写入架构react native

const personSchema = {
    name: "Person",
    properties: {
        name: string,
        age: int,
        // favorites: I don't know what to write here??
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用类型字典(“{}”),但它给了我一个错误:

[错误:混合属性不能包含值数组。]

当我使用“混合”类型时,我收到此错误:

[错误:仅支持领域实例。]

我需要为此创建一个对象类型吗?如果是这样,当我不确定收藏夹中的按键是什么时该怎么办?

这是我创建和编写实例的代码。

const …
Run Code Online (Sandbox Code Playgroud)

realm database-schema react-native realm-js realm-database

6
推荐指数
0
解决办法
2911
查看次数

领域 js:访问无效的结果对象

我在我的 React 本机应用程序中使用领域,尝试从领域数据库查询对象列表。

function* loadPlaces() {
    let realm;
    try {
        const filter = yield select(getFilter);
        realm = yield call(Realm.open, {schema: [PlaceSchema]});
        let places = realm.objects(PlaceSchema.name);
        if (filter.search) {
            places = places.filtered("name CONTAINS $0", filter.search);
        }
        switch (filter.sort) {
            case Sort.BY_NAME:
                places = places.sorted('name');
                break;
        }
        yield put(loadPlacesSucceed(places));
    } catch (e) {
        console.warn(e.message);
    } finally {
        if (realm) {
            realm.close();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

之后,我在 flatlist 中使用结果数据:

<FlatList
        data={this.props.items}
        keyExtractor={(item) => '' + item.id}
        renderItem={({item}) =>
            <PlaceItem item={item} onClick={(item) => this._onItemClicked(item)}/>}/>
Run Code Online (Sandbox Code Playgroud)

并收到错误: …

realm realm-js

5
推荐指数
2
解决办法
2343
查看次数

将realm-js从v6升级到v10

更新

我找到了v10.0.0 的发行说明,在这里我找到了重大更改。我想这应该足够了吧?

最初的问题

我想将我们的react-native项目中使用的领域库版本(v6.1.0)升级到最新的稳定版本(v10.4.0)。

由于我没有找到任何从 v6 到 v10 信息的升级文档,所以在这里问一下:是否有任何我们必须注意的更改,例如不再支持的 api 方法?

如果是这样,包含升级到此版本的步骤的自述文件将非常棒。

谢谢!

realm realm-js

5
推荐指数
0
解决办法
313
查看次数