Данные по подписке поступают очень поздно Метеор - реагировать родной метеор - PullRequest
0 голосов
/ 02 сентября 2018

После публикации данных и подписки от собственного нативного клиента требуется около минуты, чтобы подготовить подписку. Если я обновляю коллекцию, снова требуется около минуты, чтобы получить данные и запустить метод componentWillReceiveProps (newProps). У коллекции только несколько документов.

Код метеорного сервера:

import { Meteor } from 'meteor/meteor';
import { Accounts } from 'meteor/accounts-base';
import { ArtWorks } from './database/artworks';
import { Gallerys } from './database/gallerys';
import { PlayerData } from './database/playerdata';
import { Questions } from './database/questions';
import { Relics } from './database/relics';
import { RelicsOnMap } from './database/relicsonmap';



Meteor.startup(() => {





});
Meteor.publish('getRelicsOnMap', function getRelicsOnMap (){

  console.log("publishing...")
      return RelicsOnMap.find({});


    }); 

Коллекция RelicsOnMap:

import { Mongo } from 'meteor/mongo';

export const RelicsOnMap =  new Mongo.Collection('relicsonmap');

Клиент:

import React, { Component } from 'react';
import { View } from 'react-native';
import {
    Container,
    Header,
    Title,
    Content,
    Button,
    Item,
    Input,
    Body,
    Left,
    Right,
    Icon,
    Form,
    Text,
    Spinner,
    Toast 
  } from "native-base";
  import Meteor,{withTracker} from 'react-native-meteor';


 class ProfileScreen extends Component {
    constructor(props) {
        super(props);
    this.userData;

        this.state = {


        };
      }

    componentDidMount(){
     console.log(this.props)
    }
    componentWillReceiveProps(newProps){
        console.log(newProps)
    }




  render() {
    return (
        <Container> 
      <Text>This is Profile screen</Text>
      <Text>This is Profile screen</Text>




        </Container>
    );
  }

}
export default withTracker(params => {
    Meteor.subscribe('getRelicsOnMap');

     return {
       relicsOnMap: Meteor.collection('relicsonmap').find({})
     };
   })(ProfileScreen);

Я делаю Meteor.connect в другом компоненте, и он успешен. Здесь есть небольшое видео, демонстрирующее проблему: http://sendvid.com/v5fqlurh

1 Ответ

0 голосов
/ 04 сентября 2018

Я обнаружил, что эта проблема возникает из-за реакции нативного удаленного отладчика. Когда я не подключен к локальной сети для отладки через Google Chrome, все в порядке. Думаю, это ошибка.

...