react native上是否有任何文档存储



如果有类似PouchDB的东西,那就太好了。

当前的键值存储(AsyncStorage)肯定不足以存储和查询数据。

您可以在PouchDB中使用异步存储。通常在Node.js中使用LevelDOWN适配器的方法如下:

var PouchDB = require('pouchdb');
var db = new PouchDB('mydb', {db: require('asyncstorage-down')})

不过我还没有测试过。

编辑:祝你好运;最近在这方面做了很多工作:pouchdb异步存储。很快就会有一篇关于如何实现这一点的博客文章。

PouchDB是为浏览器构建的,因此它可能只需付出一点努力就可以在React Native上工作。

你看到了吗https://github.com/almost/react-native-sqlite?

我在PouchDB使用react native时遇到了一些问题,但不想安装SQLLite。因此,我构建了一个异步存储适配器。

GitHubnpm

它Polyfills为React+添加了一个基于"asyncstorage down"的异步存储适配器。这确实有帮助。

我尝试使用Stockulus的异步存储适配器(https://github.com/stockulus/pouchdb-react-native)但是在复制到远程CouchDB服务器时出现问题。

现在我正在使用React原生SQLite存储(https://github.com/andpor/react-native-sqlite-storage)和PouchDB自定义构建模式(https://pouchdb.com/2016/06/06/introducing-pouchdb-custom-builds.html)像这样:

'use strict';
import PouchDB from 'pouchdb-core'
// POLYFILLS - adapted from https://github.com/pouchdb/pouchdb/issues/3787#issuecomment-234618747
global.Buffer = global.Buffer || require('buffer').Buffer;
global.atob = global.atob || require('atob');
global.btoa = global.btoa || require('btoa');
require('blob-polyfill');
import SQLite from 'react-native-sqlite-storage';
global.openDatabase = SQLite.openDatabase; // Expose for websql adapter
GLOBAL.openDatabase = SQLite.openDatabase;
PouchDB
    .plugin(require('pouchdb-adapter-websql'))
    .plugin(require('pouchdb-adapter-http'))
    .plugin(require('pouchdb-replication'))
export default PouchDB

我知道全球是丑陋的。我们刚刚开始使用它,复制效果更好。我们还必须聚合填充一堆节点的东西。这由pouchdb核心使用,但没有指定为pouchdb内核中的依赖项。希望得到反馈。

目前使用这些软件包:

"events": "^1.1.1",
"pouchdb-adapter-http": "6.0.6",
"pouchdb-adapter-websql": "6.0.6",
"pouchdb-core": "6.0.6",
"pouchdb-replication": "6.0.6",
"atob": "^2.0.3",
"blob-polyfill": "^1.0.20150320",
"btoa": "^1.1.2",
"buffer": "^5.0.0",

感谢

您可以在SQLLite上轻松实现PouchDB,它有多种配置选择。您可能需要一个SQLite插件才能使其工作。事实上,我为科多瓦做过这件事,而且效果很好。我相信PouchDB(它是纯JavaScript,因此可以在ReactNative中开箱即用)有一个适配器,可以与功能齐全的SQLite3插件配合使用。

此插件的React Native版本可在此处获得:

https://github.com/andpor/react-native-sqlite-storage

原始的Cordova插件链接也可以在项目github上找到。

最新更新