[英]Realm.objects() in react-native app return empty objects
我正在领域中创建一个数据库,但是当我想用 Realm.objects() 查询数据时返回空对象,如下所示:{"0":{},"1":{},"2":{ }...etc},我的代码是下一个:
import Realm from "realm";
const nombreEsquema = 'Imagen12';
class Imagen {}
let esquema = Imagen.schema = {
name: nombreEsquema,
properties: {
nombre: {
type: 'string'
},
uri: {
type: 'string'
},
url: {
type: 'string'
},
}
};
let dbRealm = Realm.open({
schema: [esquema]
});
functionRealm() {
dbRealm.then(realm => {
realm.write(() => {
realm.create(nombreEsquema, {
nombre: 'David',
url: 'My URL',
uri: 'My URI'
});
});
let images = realm.objects(nombreEsquema);
console.log("------------------------------");
for (let i of images) {
console.log(i);
}
});
}
我阅读了领域的文档,但我没有看到任何与该问题有关的内容,我的领域版本是 5.0.2,而且我不知道自己在做什么,我希望您能帮助我解决我的问题。
所以我也有同样的问题。 我能够通过以下步骤解决它:
升级realm包到5.0.3yarn yarn upgrade realm
运行npx react-native link realm
(Realm 还不完全支持自动链接)
按照以下顶部的说明验证链接是否正确发生: https : //realm.io/docs/javascript/latest/
确保添加这一行 --> import io.realm.react.RealmReactPackage;
到 android/app/src/main/java/com/ <your-app-name>
/MainApplication.java 中 MainApplication.java 的顶部
<------------------------------------- || **可选** || ------------------------------------->
**你不应该这样做,但只是以防万一......
<your-app-name>
/MainApplication.java 中的包列表以确保其配置如下: @Override
protected List<ReactPackage> getPackages() {
@SuppressWarnings("UnnecessaryLocalVariable")
List<ReactPackage> packages = new PackageList(this).getPackages();
// Packages that cannot be autolinked yet can be added manually here, for example:
// packages.add(new MyReactNativePackage());
+ packages.add(new RealmReactPackage()); // <-- This line adds in the realm package.
packages.add(new RNSensitiveInfoPackage());
return packages;
}
cd 进入 /android 目录并通过运行./gradlew clean
从你的项目根目录重新编译并再次运行npx react-native run-android
** 如果您收到如下所示的错误:
Native module realm tried to override realm for module name realm. If this was your intention, set canOverrideExistingModule=true
打开<your-app-name>
/node_modules/realm/android/src/main/java/io/realm/react/RealmReactModule.java
在 RealmReactModule 类中添加以下几行:
@Override
public boolean canOverrideExistingModule() {
return true;
}
希望这可以帮助! 🙂
确实,您可以将领域升级到 5.0.3,因为 5.0.2 上存在错误
查看发布日志: https : //github.com/realm/realm-js/releases/tag/v5.0.3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.