无法在react native中复制PockDB中的couchDB内容

无法在react native中复制PockDB中的couchDB内容,couchdb,react-native-android,pouchdb,Couchdb,React Native Android,Pouchdb,我已经创建了一个带有PockDB设置的react原生项目。已经安装了couchDB。使用“BackDB react native”在react native中尝试相同的方法。复制没有发生。我收到错误消息:“getCheckpoint被拒绝”,名称:“未知”。以下是代码: 进口反应{ 组成部分, }从"反应", import { View, Image, StyleSheet, Text } from 'react-native'; import PouchDB from 'pou

我已经创建了一个带有PockDB设置的react原生项目。已经安装了couchDB。使用“BackDB react native”在react native中尝试相同的方法。复制没有发生。我收到错误消息:“getCheckpoint被拒绝”,名称:“未知”。以下是代码: 进口反应{ 组成部分, }从"反应",

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>
    );
  }
}
这里怎么了?如何调试呢

还尝试用以下代码替换同步部分:

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)
    });

同步只会进入“暂停”状态。

当我断开与internet的连接时,我会遇到同样的错误。当我重新连接时,一切正常。也许会对你的连接进行故障排除?我用的是react native。此外,您的package.json中可能不需要PockDB。我只是有一个BuckDB react native,它拖进了正确的PockDB

另外,您的url中包含127.0.0.1。我假设您只是使用该地址来屏蔽真实地址,或者该地址是否与您在开发机器上运行的couchDB服务器相对应。您可能需要将该地址更改为couchDB服务器的实际地址,如192.168.1.1。我认为您的设备或模拟器上的127.0.0.1将在设备或模拟器上查找服务器,而不是在您的开发人员机器上。希望这有帮助

沃伦·贝尔

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)
    });