我已经创建了一个带有pouchDB设置的react-native项目。安装了couchDB。尝试使用“pouchdb-react-native”进行反应。复制没有发生。我收到错误消息:“getCheckpoint拒绝了”,名称:“未知”。以下是代码: import React,{ 零件, 来自'react';
import {
View,
Image,
StyleSheet,
Text
} from 'react-native';
import PouchDB from 'pouchdb-react-native'
const localDB = new PouchDB('todo');
const remoteDB = new PouchDB('http://username:password@127.0.0.1:5984/todo');
export default class Example extends Component {
constructor(props) {
super(props);
}
componentDidMount() {
// Get records
localDB.allDocs({include_docs: true})
.then(results => {
results.rows.map(row => {
console.log(row.doc);
})
}).catch(err => alert('Err in fetching all records'));
localDB.sync(remoteDB,
function(err, response) {
if (err) {
return console.log(err);
} else {
console.log(response);
}
});
localDB.changes({
live: true,
include_docs: true
}).on('change', () => {
console.log("Event changed in localDB");
this.getAllRecords();
})
.on('complete', () => {
console.log("Event complete in localDB");
this.getAllRecords();
})
.on('error', () => alert("Error"))
}
render() {
return (
<View style={styles.container}>
<Text>Example screen</Text>
</View>
);
}
}
请帮助解决这个问题。 package.json看起来像这样:
"pouchdb": "^6.3.4",
"pouchdb-react-native": "^6.3.4",
"react": "16.0.0-alpha.12",
"react-native": "0.47.2",
这里有什么问题?以及如何调试?
还尝试用以下代码替换同步部分:
const sync = localDB.sync(remoteDB, {
live: true,
retry: true,
direction: 'from'
});
sync
.on('change', pay_load => {
console.log(" changed!: ");
}).on('paused', info => {
console.log("paused");
}).on('denied', info => {
console.log("paused");
}).on('complete', info => {
console.log("paused");
}).on('active', info => {
console.log("Active");
}).on('error', err => {
console.log("error", err);
}).catch( err => {
console.log("Error: ",err)
});
同步仅进入“暂停”状态。
答案 0 :(得分:1)
当我断开网络连接时,我收到同样的错误。当我重新连接时,一切正常。也许解决你的连接问题?我正在使用本机反应。此外,您的package.json中可能不需要pouchdb。我只是将pouchdb-react-native拖入正确的pouchDB中。
另外你的网址中有127.0.0.1。我假设您刚刚使用该地址来屏蔽实际地址,或者该地址是否与您在开发机器上运行的couchDB服务器相对应。您可能需要将该地址更改为couchDB服务器的实际地址,例如192.168.1.whatever。我认为您的设备或模拟器上的127.0.0.1将在设备或模拟器上寻找服务器而不是您的开发机器上的服务器。希望这会有所帮助。
沃伦贝尔