【发布时间】:2017-05-15 20:10:26
【问题描述】:
我有一个使用 React 开发的 Meteor 应用程序。我的项目中仍然有 autopublish 包 (autopublish@1.0.7)。
这是我的相关代码:
MainMenu.jsx
import React, { Component, PropTypes } from 'react'
import { Meteor } from 'meteor/meteor'
import { FlowRouter } from 'meteor/kadira:flow-router'
import { createContainer } from 'meteor/react-meteor-data'
import { ChatRooms } from '/imports/api/chatrooms.js'
export class MainMenu extends Component {
render() {
console.log(this.props.chatrooms)
return (
{/* Render stuff here is not part of the scope of this question */}
)
}
}
MainMenu.PropTypes = {
chatrooms: PropTypes.array.isRequired
}
export default createContainer(() => {
return {
chatrooms: ChatRooms.find({}).fetch()
}
}, MainMenu)
chatrooms.js
import { Mongo } from 'meteor/mongo'
export const ChatRooms = new Mongo.Collection('chatrooms')
MainMenu 组件中的console.log(this.props.chatrooms) 始终返回一个空数组 ([])。
Mongo 数据库中肯定有项目,因为当我在控制台中运行 meteor mongo 命令并键入 db.chatrooms.find({}); 时,它会返回我插入的 3 个项目来测试这一切。
有人知道我在这里做错了什么吗?非常感谢您的帮助!
【问题讨论】:
-
你在问题中的代码 sn-p 帮助我在我的第一个流星+反应+mongo 应用程序中获取数据,我在过去 4 个多小时内无法实现,谢谢 :)
-
很高兴这对您有所帮助@adi! :)
-
我观察到一个奇怪的事情是我的代码在头等舱中没有这个 sn-p 就无法工作:
componentDidMount() { Meteor.subscribe('projects'); }
标签: mongodb reactjs meteor collections meteor-1.4