我发布了我的所有评论集合:
Meteor.publish('comments', function() {
return Comments.find(
{},
{ fields: { date: 1, body: 1, user: 1, attachedTo: 1, attachedToID: 1 } },
);
});
使用以下内容订阅React组件:
export default withTracker(() => {
let commentsSub = Meteor.subscribe('comments');
return {
comments: Comments.find({}).fetch(),
};
})(MyReactComponent);
到目前为止,这有效,但现在我想改进发送的评论。 commentsTo的评论字段可以是“个人资料”或“主页”。我修改了我的pub函数以获取输入:
Meteor.publish('comments', function(attachedTo) {
return Comments.find(
{ attachedTo: attachedTo },
{ fields: { date: 1, body: 1, user: 1, attachedTo: 1, attachedToID: 1 } },
);
});
但我无法看到如何从我的React组件中传递此参数:
export default withTracker(() => {
let commentsSub = Meteor.subscribe('comments');
return {
comments: Comments.find({ attachedTo: 'group' }).fetch(),
};
})(MyReactComponent);
答案 0 :(得分:0)
我已经扩展了blueren的答案,因为我想命名参数:
export default withTracker(() => {
let commentsSub = Meteor.subscribe('comments', { attachedTo: 'profile' });
return {
comments: Comments.find({}).fetch(),
};
})(MyReactComponent);
Meteor.publish('comments', function(attachedTo) {
return Comments.find(
{ attachedTo },
{ fields: { date: 1, body: 1, user: 1, attachedTo: 1, attachedToID: 1 } },
);
});
答案 1 :(得分:0)
在当前的实现中,发布函数中的attachTo将是未定义的,因为您没有传递任何参数。
<强>订阅:强>
...
let commentsSub = Meteor.subscribe('comments','group'); // pass the value to the publish function.
...
您必须将'group'作为参数传递给发布函数。