所以我有以下情况。我返回一个包含容器A中一群参与者的事件。container是A的一个子元素,一旦订阅就绪并加载数据,就会被呈现。B现在应该使用所有的participant_ids来获取相关的用户信息(即图片和名称)。
我通常在流星中访问数据的方式是这样做createContainer:
const ComponentContainer = createContainer((props) => {
const eventSub = Meteor.subscribe('getEvent',props.find.filter);
const loading = !eventSub.ready();
const eventData = loading ? null : Events.find(fin).fetch()[0];
const eventDataExists = !loading && !!eventData;
return {
loading,
eventData,
eventDataExists,
}
}, Component)在模块中,我的组件位于我导入的事件集合中,如下所示:
import { Events } from '/imports/api/collections'我在/imports/api/集合中定义了所有集合,如下所示:
import { Mongo } from 'meteor/mongo'
export const Events = new Mongo.Collection('events');我还像这样导入服务器的集合(in / server /main.js)
import {
Events,
...,
} from '/imports/api/collections';现在,由于我想使用对部分用户的订阅,并且在Events.find(fin).fetch()上面的位置,我没有为用户提供的订阅(因为在服务器端,我通过Meteor.users.find()获得信息.如果我试图以类似于事件的方式声明用户集合,我会收到一条关于重复声明的消息。
发布于 2017-07-17 20:07:19
您不需要声明Users集合;accounts-base包提供了Meteor.users对它的收集和访问。您可以在“流星指南”中阅读更多有关帐户基础的内容。。
请记住,只发布当前登录用户的用户帐户,这样用户在默认情况下无法查看其他用户的信息。如果要向客户端公开其他用户的数据,则必须编写自己的自定义发布。
https://stackoverflow.com/questions/45152636
复制相似问题