我正在使用meteor + react并尝试在客户端订阅数据。但是,我一直收到我试图返回的集合未定义的错误。
我的server.js:
import { Meteor } from 'meteor/meteor';
import { Mongo } from 'meteor/mongo';
import { check } from 'meteor/check';
export const Reminders = new Mongo.Collection('reminders');
Meteor.publish('reminders', function() {
return Reminders.find();
});
My Reminders.jsx文件:
RemindersList = React.createClass({
mixins: [ReactMeteorData],
getInitialState: function() {
return {
reminders: [
{
name: 'Pill 1',
description: 'Pill 1 description',
time: '9am'
},
{
name: 'Pill 2',
description: 'Pill 2 description',
time: '9am'
},
{
name: 'Pill 3',
description: 'Pill 3 description',
time: '9am'
}
]
}
},
getMeteorData: function() {
var data = {};
var handle = Meteor.subscribe('reminders');
if(handle.ready()) {
data.reminders = Reminders.findOne(); //Returns `Reminders` is not defined
}
return data;
},
render: function() {
console.log(this.data); //returns an empty object
return (
<h1>Test</h1>
)
}
});
我得到的具体错误是getMeteorData
函数:
Reminders is not defined
。
但是,我在server.js文件中明确定义了Reminders
。有谁知道什么可能是错的?
提前致谢!!
答案 0 :(得分:1)
您的收藏仅在服务器端定义。您需要将它放在双面都可访问的文件中,然后从服务器端和客户端代码中导入它。