【问题标题】:Issue making React-Komposer Reactive with multiple subscriptions使用多个订阅使 React-Komposer Reactive 出现问题
【发布时间】:2016-06-09 15:21:50
【问题描述】:

我正在使用流星厨师基地,但我在使用 react-komposer 时遇到了反应性问题。我有一个订阅调用,它从 url (lectureId, courseId) 获取 id,以首先查找(并在需要时创建)具有这些 id 和 currentQuestion 字段的 userLecture 文档,它用于获取当前的 Question 订阅。我稍后更新了 currentQuestion id,但问题订阅在硬页面刷新之前不会更新。当输入实际上没有改变时,我怎样才能使订阅反应?

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
        })
      ]
    }
  }
});

【问题讨论】:

    标签: javascript meteor reactjs


    【解决方案1】:

    你确定它不会改变吗?我有类似的问题。它隐藏在我填充视图的方式中。你用的是什么ui框架?我想反应。请提供视图,我想我知道您的问题的解决方案。

    【讨论】:

      猜你喜欢
      • 2020-03-18
      • 1970-01-01
      • 2011-02-01
      • 2020-09-12
      • 1970-01-01
      • 1970-01-01
      • 2019-07-09
      • 2018-09-21
      相关资源
      最近更新 更多