我正在学习流星和反应,我正在创建一个小应用程序,允许用户创建消息。很容易......但我无法摆脱加入收藏。试图使用流星和反应收集使用
什么我使用的是publish-composite帮我做肮脏的工作,但我迷路了......
这是迄今为止代码:
messages.js:
import { Meteor } from 'meteor/meteor';
import { publishComposite } from 'meteor/reywood:publish-composite';
export const Messages = new Mongo.Collection('messages');
if (Meteor.isServer) {
publishComposite('messages', {
find() {
return Messages.find({}, {
sort: { createdAt: -1 }
});
},
children: [
{
find(message) {
return Meteor.users.find(
{ _id: message._author }
);
}
}
]
});
}
并在我的阵营组件我创造了这个:
componentDidMount() {
this.messagesTracker = Tracker.autorun(() => {
Meteor.subscribe('messages');
const messages = Messages.find({}, {
sort: { createdAt: -1 }
}).fetch();
console.log(messages);
this.setState({ messages });
});
}
在文档发布复合我看到它使用Template.topTenPosts.helpers
来获取数据,我不知道如何模拟与之反应一样...
什么日志显示只是没有任何用户信息的消息数据:
Object
createdAt:Sat Jul 15 2017 18:17:13 GMT+0200 (CEST)
message:"A message..."
_author:"6M8wNbt4Ff2YTN99u"
_id:"2gL2xKbWnduYqTHXk"
我该如何摆脱它?欢呼声
感谢您的回答。遵循这种方法,我没有收到关于作者的“填充”信息的集合,但是我仍然需要遍历作者才能为每封邮件获取作者的正确名称。其实我正在尝试[霹雳:加入](https://atmospherejs.com/perak/joins),看看它是否能像我期望的那样好。如果我会尝试你的方法。谢谢。 –
你是对的 - 它不会做传统的加入,它只是确保所有需要的数据都在客户端上结束。然后由您在渲染中将其拉到一起。 –