1

我有一个使用 React 开发的 Meteor 应用程序。我的项目中仍然有这个autopublish包(autopublish@1.0.7)。

这是我的相关代码:

主菜单.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)

聊天室.js

import { Mongo } from 'meteor/mongo'

export const ChatRooms = new Mongo.Collection('chatrooms')

console.log(this.props.chatrooms)组件中的总是MainMenu返回一个空数组 ( [])。

数据库中肯定有项目,Mongo因为当我meteor mongo在控制台中运行命令并键入db.chatrooms.find({});它时,它会返回我插入的 3 个项目来测试这一切。

有人知道我在这里可能做错了什么吗?帮助将不胜感激!

4

1 回答 1

2

我已经想通了。我遗漏了整个过程的关键步骤。

在我的/server/main.js文件中,我需要添加以下行来修复所有问题:

import '../imports/api/chatrooms.js
于 2017-01-01T10:21:19.603 回答