资讯专栏INFORMATION COLUMN

React Native 使用Realm数据库组件

Imfan / 3002人阅读

摘要:本文原创首发于公众号开发圈是一款专为移动端开发的高性能数据库。前提的版本要大于等于安装示例代码调试使用来调试查看编辑数据库里的数据,支持。直接将下载的压缩文件复制到对应的目录下即可。

本文原创首发于公众号:ReactNative开发圈

Realm是一款专为移动​端开发的高性能数据库。支持React-Naitve,支持 iOS 和 Android。官网文档地址:https://realm.io/docs/javascr...。

前提

React Native的版本要大于等于0.31.0

安装
npm install --save realm
react-native link realm
示例代码
const Realm = require("realm");

class  extends Component {
  constructor(props) {
    super(props);
    this.state = { realm: null };
  }

  componentWillMount() {
    Realm.open({
      schema: [{name: "Dog", properties: {name: "string"}}]
    }).then(realm => {
      realm.write(() => {
        realm.create("Dog", {name: "Rex"});
      });
      this.setState({ realm });
    });
  }

  render() {
    const info = this.state.realm
      ? "Number of dogs in this Realm: " + this.state.realm.objects("Dog").length
      : "Loading...";

    return (
      
        
          {info}
        
      
    );
  }
}
调试

使用Realm Studio来调试查看编辑数据库里的数据,支持Mac、Windows、Linux。

问题

在第一次编译时需要下载依赖,但是由于我国网络问题,下载速度很慢,所以就会编译失败,一般会报以下错误:

Downloading dependency: sync 1.0.3
https://static.realm.io/downl...
Downloading sync failed. Please try again once you have an Internet connection.
Command /bin/sh failed with exit code 1

解决方法

就是手动从上面的链接地址去下载realm-sync-cocoa-1.0.3.tar.xz或者从别人电脑上拷贝过来,放到对应的目录下即可。现在问题的关键是找到对应的目录。
先找到你项目目录下的/node_modules/realm/scripts/download-core.sh,打开该文件,找到download_core方法,在mkdir -p "$TMP_DIR”代码下面添加这三行代码:

    echo "$TMP_DIR"
    echo "$TMP_TAR"
    echo "$TAR"

这三行代码的目的就是打印出临时目录的路径。添加完后保存文件,然后重新执行react-native run-ios,这时候终端上面就会打印出临时目录的路径。直接将下载的压缩文件复制到对应的目录下即可。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/89493.html

相关文章

  • Redux 的问题:React、MobX 和 Realm 能解决吗?

    摘要:它是由一个非常聪明的人开发的,用来缓解在单页面应用中管理状态的问题。的问题没有一种适合所有场景的完美工具。为设计的是世界的另一个新增内容,但目前仅适用于。这将导致最后期限延长,并且留下更多需要我们维护的代码。 原文:The Problems with Redux: Can React, MobX, and Realm save us? 作者:Erich Reich 首先,我不讨厌 ...

    snifes 评论0 收藏0
  • 从零开始的 Android 新项目 - 收藏集 - 掘金

    摘要:从零开始的新项目高级篇掘金承接上篇,本篇继续讲解一些更加进阶的内容,包括列表绑定自定义属性双向绑定表达式链表达式动画注入测试等。 从零开始的 Android 新项目 8 - Data Binding 高级篇 - 掘金 承接上篇,本篇继续讲解一些更加进阶的内容,包括:列表绑定、自定义属性、双向绑定、表达式链、Lambda表达式、动画、Component注入(测试)等。 Demo源码库:D...

    LeviDing 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<