1

我正在尝试通过 meteor.com/tutorials/ 学习 Meteor,我已经完成了 blaze 版本 - 一切正常,现在当我尝试 React 版本时 (meteor.com/tutorials/react/collections)。我在导入收藏时遇到了一些问题。

在步骤 3.4 之后,我执行以下操作:

db.tasks.insert({ text: "Hello world!", createdAt: new Date() });

然后运行流星(sudo meteor run),应用程序正常启动,但在网络浏览器中我看不到任何数据。只有背景样式。

编辑1:

/imports/api/tasks.js

import { Mongo } from 'meteor/mongo';
export const Tasks = new Mongo.Collection('tasks');

/imports/ui/App.JSX

import React, { Component, PropTypes } from 'react';
import { createContainer } from 'meteor/react-meteor-data';

import { Tasks } from '../api/tasks.js';

import Task from './Task.jsx';

// App component - represents the whole app
class App extends Component {
  renderTasks() {
    return this.props.tasks.map((task) => (
      <Task key={task._id} task={task} />
    ));
  }

  render() {
    return (
      <div className="container">
        <header>
          <h1>Todo List</h1>
        </header>

        <ul>
          {this.renderTasks()}
        </ul>
      </div>
    );
  }
}

App.propTypes = {
  tasks: PropTypes.array.isRequired,
};

export default createContainer(() => {
  return {
    tasks: Tasks.find({}).fetch(),
  };
}, App);

/server/main.js

import '../imports/api/tasks.js';

(这里是包含所有修改文件的 GitHub 存储库:https ://github.com/brozermanik/meteor-rect-tutorial )

EDIT2:在我尝试过的 Mongo shell 中:

show dbs

和:

show collections

它显示了任务数据库及其元素。

所以要么 Meteor 无法从 Mngo 获取数据,要么渲染组件有问题。

抱歉,如果这是一个新手问题,但我已经被困了 3 天。

4

1 回答 1

0

在 server/main.js 中,你应该把

import { Meteor } from 'meteor/meteor';
import { Mongo } from 'meteor/mongo';

Meteor.startup(() => {
  // code to run on server at startup
  Tasks = new Mongo.Collection('tasks');
});

我认为问题在于您将其放入 client/main.js !

于 2019-01-31T14:39:13.037 回答