次のリアクションコンポーネントがあると、このコンポーネントをthis.ticket.propsに渡しています。私はuserReservationsというコレクションに登録しています。チケットのプロパティは正しくレンダリングされます。つまり、各チケットは特定のプロパティのみをレンダリングしています。Meteor.publicationコレクションをコンポーネントのpropで正しく照会するにはどうすればよいですか?
ただし、.renderReservationInfo()メソッドの内部です。 Meteor刊行物を、UserReservationコレクションの「ticketId」値に対応するcreateContainerクラスのセレクタとしてticket._id値で作成した後、Meteorパブリケーションは正しいコレクション情報で応答しますが、すべてのチケットにレンダリングします。
私がticket._idで照会している場合、コレクションは両方のチケットに適用されるのはなぜですか?予約情報を対応するticket._idにどのようにレンダリングできますか?
これを管理するのに役立つ反作用コンポーネントがありますか?
class ComponentName extends React.Component {
renderReservationInfo() {
let {
ticket,
UserReservation
} = this.props;
return UserReservation.map((reservation) => {
return (
<div key = {reservation._id} >
<h4> {reservation.property1} < /h4>
<h4> {reservation.property2} < /h4>
<h4> {reservation.property3} < /h4>
<Component2 prop = {reservation} />
</div >
)
});
}
render() {
return (
<div >
< div className = "make-it-pretty" >
<h4> Ticket Price: $ { this.props.ticket.property1 } </h4>
<h4> Ticket Price: $ { this.props.ticket.property2 } </h4>
<h4> Ticket Price: $ { this.props.ticket.property3 } </h4>
{ this.renderReservationInfo() }
</div>
</div >
)
}
}
export default createContainer(({ ticket }) => {
Meteor.subscribe('userReservations', ticket._id);
return {
UserReservation: UserReservations.find({}).fetch()
};
}, ComponentName);
そして、私の出版情報
//Server
Meteor.publish('userReservations', function(ticket_Id) {
if (!ticket_Id) {
console.log('No ticketId sent');
} else {
console.log('sending UserReservations', ticket_Id);
return UserReservations.find({ ticketId:ticket_Id });
}
});