0
我正在使用流星廚師基地,我遇到了使用react-komposer的反應問題。我有一個訂閱調用,它從url(lectureId,courseId)中獲取id,首先查找(並在需要時創建)帶有這些id和用於獲取當前Question訂閱的currentQuestion字段的userLecture文檔。我稍後更新currentQuestion標識,但問題訂閱不更新,直到硬頁刷新。如果輸入實際上沒有變化,我怎樣才能使該訂閱成爲被動的?問題製作React-Komposer反應多個訂閱
const composer = (params, onData) => {
let subscription = Meteor.subscribe('questionFromSlugs', params.courseSlug, params.lectureSlug);
if (subscription.ready()) {
const question = Questions.findOne();
const userLecture = UserLecture.findOne();
onData(null, { question });
}
};
export default composeWithTracker(composer, Loading)(QuizQuestion);
這是流星訂閱:
Meteor.publish('questionFromSlugs', function(courseSlug, lectureSlug){
check(courseSlug, String);
check(lectureSlug, String);
check(this.userId, String);
let user = this.userId;
let lecture = Lectures.findOne({courseSlug: courseSlug, slug: lectureSlug});
let course = Courses.findOne({slug: courseSlug});
if (lecture != null && course != null) {
var thisLectureScore = UserLecture.find({
userId: user,
lectureId: lecture._id
}).count();
if (thisLectureScore == 0){
UserLecture.insert({
userId: user,
courseId: course._id,
lectureId: lecture._id,
lectureScore: 0,
currentLevel: 1
});
}
let userLecture = UserLecture.findOne({
userId: user,
courseId: course._id,
lectureId: lecture._id
});
if (userLecture != null){
return [
Questions.find({_id: userLecture.currentQuestionId}),
UserLecture.find({
userId: user,
courseId: course._id,
lectureId: lecture._id
})
]
}
}
});