Meteor 不显示数据库中存在的集合
Meteor does not display collection that exists in db
一个 Meteor/React 菜鸟,经历了 Meteor-React tutorial 并卡在了第 3 步。我的问题是数据没有显示在浏览器中,尽管它存在于数据库中。
这是我的 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';
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);
控制台中未显示任何错误。
基本上this.props.tasks
returns 空数组。但是 db.tasks.find({})
在控制台中显示记录。在不做太多改变的情况下,如果我对 Tasks 记录进行硬编码,它们会正常显示,因此问题不在于 Task 组件。任何人都可以在这里提供帮助吗?非常感谢。
client/main.jsx:
import React from 'react';
import { Meteor } from 'meteor/meteor';
import { render } from 'react-dom';
import App from '../imports/ui/App.jsx';
Meteor.startup(() => {
render(<App />, document.getElementById('render-target'));
});
package.json:
{
"name": "simple-todos",
"private": true,
"scripts": {
"start": "meteor run"
},
"dependencies": {
"meteor-node-stubs": "~0.2.0",
"react": "^15.1.0",
"react-addons-pure-render-mixin": "^15.1.0",
"react-dom": "^15.1.0"
}
}
npm 版本3.3.12
节点版本 5.6.0
根据您的描述,您的数据库似乎无法在服务器和客户端上访问。可能是您忘记在服务器端添加数据库的引用。尝试导入服务器的任务 main.js
文件。
确保您的 server/main.js 具有以下行:
import '../imports/api/tasks.js';
一个 Meteor/React 菜鸟,经历了 Meteor-React tutorial 并卡在了第 3 步。我的问题是数据没有显示在浏览器中,尽管它存在于数据库中。
这是我的 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';
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);
控制台中未显示任何错误。
基本上this.props.tasks
returns 空数组。但是 db.tasks.find({})
在控制台中显示记录。在不做太多改变的情况下,如果我对 Tasks 记录进行硬编码,它们会正常显示,因此问题不在于 Task 组件。任何人都可以在这里提供帮助吗?非常感谢。
client/main.jsx:
import React from 'react';
import { Meteor } from 'meteor/meteor';
import { render } from 'react-dom';
import App from '../imports/ui/App.jsx';
Meteor.startup(() => {
render(<App />, document.getElementById('render-target'));
});
package.json:
{
"name": "simple-todos",
"private": true,
"scripts": {
"start": "meteor run"
},
"dependencies": {
"meteor-node-stubs": "~0.2.0",
"react": "^15.1.0",
"react-addons-pure-render-mixin": "^15.1.0",
"react-dom": "^15.1.0"
}
}
npm 版本3.3.12
节点版本 5.6.0
根据您的描述,您的数据库似乎无法在服务器和客户端上访问。可能是您忘记在服务器端添加数据库的引用。尝试导入服务器的任务 main.js
文件。
确保您的 server/main.js 具有以下行:
import '../imports/api/tasks.js';