【问题标题】:Meteor + React: Can't get data from mongoDB CollectionMeteor + React:无法从 mongoDB 集合中获取数据
【发布时间】: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


【解决方案1】:

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

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

import '../imports/api/chatrooms.js

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2015-02-02
    • 1970-01-01
    • 2021-05-21
    • 1970-01-01
    相关资源
    最近更新 更多