React Native 使用Realm数据库组件

本文原创首发于公众号: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 <project-name> 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 (
      <View style={styles.container}>
        <Text style={styles.welcome}>
          {info}
        </Text>
      </View>
    );
  }
}

调试

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

React Native 使用Realm数据库组件

问题

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

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,这时候终端上面就会打印出临时目录的路径。直接将下载的压缩文件复制到对应的目录下即可。

React Native 使用Realm数据库组件

相关推荐