我正在學習流星和反應,我正在創建一個小應用程序,允許用戶創建消息。很容易......但我無法擺脫加入收藏。試圖使用流星和反應收集使用
什麼我使用的是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),看看它是否能像我期望的那樣好。如果我會嘗試你的方法。謝謝。 –
你是對的 - 它不會做傳統的加入,它只是確保所有需要的數據都在客戶端上結束。然後由您在渲染中將其拉到一起。 –