Javascript Meteor-createContainer未渲染以进行反应

Javascript Meteor-createContainer未渲染以进行反应,javascript,mongodb,reactjs,meteor,ecmascript-6,Javascript,Mongodb,Reactjs,Meteor,Ecmascript 6,我试图动态地从mongo数据库检索数据,比如当有人向数据库插入内容时,它会在客户端自动更新。首先,我在客户端文件夹的main.js上使用了Tracker.autorun,它可以正常工作。在运行ReactDOM.render时,我将一个道具传递到根组件中,并对其进行渲染。但是,当我添加路由时,我不再通过组件,而是通过整个路由。所以我试着在组件文件上运行它,但它不起作用。所以我尝试使用createContainer,我跟踪了meteor网站上的文档,但是我得到的数据是一个未捕获的引用错误:道具不是定

我试图动态地从mongo数据库检索数据,比如当有人向数据库插入内容时,它会在客户端自动更新。首先,我在客户端文件夹的main.js上使用了Tracker.autorun,它可以正常工作。在运行ReactDOM.render时,我将一个道具传递到根组件中,并对其进行渲染。但是,当我添加路由时,我不再通过组件,而是通过整个路由。所以我试着在组件文件上运行它,但它不起作用。所以我尝试使用createContainer,我跟踪了meteor网站上的文档,但是我得到的数据是一个未捕获的引用错误:道具不是定义错误。请帮我找出我做错了什么。先谢谢你

import React from 'react';
import PropTypes from 'prop-types';
import { Link } from 'react-router';
import { Meteor } from 'meteor/meteor';
import { Tracker } from 'meteor/tracker';
import { createContainer } from 'meteor/react-meteor-data'

import { Temp } from './../api/temp';

import Navigation from './Navigation';
import Readings from './Readings';


// Tracker.autorun(function () {
//   console.log(Temp.find().fetch());
//   });

export class App extends React.Component {

render() { 
return (
            <div>
             <Navigation/>
             <h1>HomePage</h1>
             <Readings temp={props.getData}/>
            </div>
        );
     }
  }

export default createContainer(() => {
  Meteor.subscribe('temp');
  return { 
      getData: Temp.find().fetch()
  };
}, App);
未定义props,因为它位于类实例上,可使用this.props访问。你可以阅读es6课程并做出反应

但是,您会发现,在组件呈现时,您的订阅尚未准备就绪。因此,使用订阅句柄测试它是否准备就绪,同时显示加载程序

export class App extends React.Component {
  render() {
    const {ready, getData} = this.props;
    if (!ready) return (<div>loading...</div>);
    return (
      <div>
        <Navigation/>
        <h1>HomePage</h1>
        <Readings temp={getData}/>
      </div>
    );
  }
}

export default createContainer(() => {
  const handle = Meteor.subscribe('temp');
  return {
      ready: handle.ready(),
      getData: Temp.find().fetch()
  };
}, App);