Получение NaN в URL, даже когда правильная переменная передается через router-link - PullRequest
0 голосов
/ 20 февраля 2020

Я использую vue router-link для передачи courseId и quizId в Quiz Component. Когда компонент Quiz инициализируется, он получает courseId и quizId в create () через this.$router.params. Параметры получены в первой попытке , но когда я refre sh страницы, параметры quizId устанавливаются на NaN . Также в URL-адресе компонента передается только courseId , тогда как quizId равен NaN . Я не понимаю, в чем именно проблема. Я выложу код ниже.

маршруты :

const routes = [
  {
    path: '',
    component: Course,
    name:'ViewCourse'
  },
  {
    path: '/module/:course_id/:module_id',
    component: Module,
    name: 'ViewModule'
  },
  {
    path: '/:course_id/:quiz_id',
    component: Quiz,
    name: 'QuizModule'
  },
  {
    path: '/:course_id/:unit_id/:quiz_id',
    component: QuizInstructions,
    name: 'QuizInstructions'
  }
]

QuizInstructions:

     <router-link :to="{name: 'QuizModule', params: {course_id: courseId, quiz_id: quiz.id}}" class="btn btn-primary">Start Quiz</router-link>

Викторина :

created () {
    const courseId = parseInt(this.$route.params.course_id)
    const quizId = parseInt(this.$route.params.quiz_id)
    // This condition fails as quizId is NaN on page refresh
    if (courseId && quizId){
      this.fetchQuestions(courseId, quizId)
    }
  },

Пожалуйста, помогите мне понять, что я делаю неправильно. Раньше это работало до сих пор, оно ломается, и я не могу найти проблему. Пожалуйста, скажите мне, если требуется больше контента. Я разместил только код, который, по моему мнению, вызывает проблему.

Спасибо.

Редактировать : проблема решена. Я случайно сделал router.pu sh () в одном из действий vuex, которое привело к установке quizId как NaN. Это потому, что я вставил неверную неопределенную переменную в URL.

...