我正在使用带有react native的域数据库。我有一个文件realm.js,我在那里定义我的领域架构和数据库的存储路径:
import Realm from 'realm';
import RNFS from 'react-native-fs'
class Test extends Realm.Object {}
Test.schema = {
name: 'Test',
primaryKey: 'id',
properties: {
id: {type: 'string', optional: false},
...,
},
};
export default new Realm({schema: [Test],
path: RNFS.DocumentDirectoryPath + "/t_db.realm"});
我通过导入使用此域:import realm from './realm'
,例如:this.query = realm.objects('Test').sorted('id');
。
在我的应用程序中,我想实现一个备份功能,其中域db被复制到外部用户存储。因此我使用具有此功能的React Native Filesystem:
import realm from './realm'
import RNFS from 'react-native-fs'
backup() {
console.log("path ", realm.path)
realm.close()
console.log("closed ", realm.isClosed)
RNFS.copyFile(realm.path, RNFS.ExternalDirectoryPath + "/t_db.realm")
console.log("copied")
realm.open()
}
我的console.logs表明我正在成功复制数据库但我无法重新打开它。此时抛出以下错误:
ReactNativeJS:undefined不是函数(评估'_realm2.default.open()')
当我试图等待副本完成时:
RNFS.copyFile(realm.path, RNFS.ExternalDirectoryPath + "/t_db.realm")
.then(() => {
console.log("copied")
realm.open()
})
我在console.log(“复制”)之后收到以下错误:
ReactNativeJS:'未处理的承诺拒绝',{[TypeError:undefined不是函数(评估'_realm2.default.open()')]
任何人都可以帮我解决这个问题吗?