鉴于以下React组件,我传递此组件this.ticket.props并且我订阅了一个名为userReservations的集合。故障单属性正确呈现,即每个故障单仅呈现其特定属性。
但是在.renderReservationInfo()方法中。在使用ticket._id值作为createContainer类中的选择器进行Meteor.subscription调用(对应于UserReservation集合中的“ticketId”值)之后,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 });
}
});