私はMeteorとReactを勉強しています。ユーザーがメッセージを作成できる小さなアプリケーションを作成しています。かなり簡単です...しかし、私は結合コレクションを取り除くことはできません。MeteorとReactを使ってコレクションを再生しようとしています
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 }
);
}
}
]
});
}
何を私が使用していることはここで
は、これまでのコードです...汚い仕事をして私を助けるために publish-compositeですが、私は迷ってしまいましたのドキュメントで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"
どうすれば削除できますか?歓声
あなたの答えをありがとう。このアプローチに従うと、私は著者についての「人口」の情報を含むコレクションを受け取ることはできませんが、各メッセージの作者の正しい名前を取得するために著者を繰り返してやる必要があります。実際に私は期待通りにうまく動作するかどうかを確認するために[perak:joins](https://atmospherejs.com/perak/joins)を試しています。あなたのアプローチを試してみましょう。ありがとう。 –
あなたはそうです - それは伝統的な参加をしません、それはすべての必要なデータがクライアントで終わることを確認します。それはあなたのレンダリングで一緒に引っ張っていくことです。 –