P粉1916105802023-08-30 11:13:35
在QuestionPage.vue
元件中,您的<answers :question="question"></answers>
應該有一個v-if= "question.id"
來防止載入元件,以防data()
函數中定義的question
不存在。
解釋
控制台中報錯是因為在您的HTTP請求中使用了一個未定義的變數。
查看您的Answers.vue
元件,在created
函數中有以下程式碼:
created () { this.fetch(`/questions/${this.questionId}/answers`); },
這個問題ID是指同一個Answers.vue
中的Props / Data結構:
export default { props: ['question'], mixins: [highlight], data () { return { questionId: this.question.id, count: this.question.answers_count, answers: [], answerIds: [], nextUrl: null } } }
在您的QuestionPage.vue
元件中,您將question
作為prop傳遞給Answers.vue
元件。然而,這個變數可能是未定義的。您應該先檢查這個函數的結果
mounted () { this.fetchQuestion (); // alert(this.question) // console.log(this.question) }, methods: { fetchQuestion () { axios.get(`/questions/${this.slug}`).then(({data})=> { this.question = data.data }).catch(error => console.log(error)) } }
如果函數沒有結果,請確保您的slug
prop是正確的,並由後端處理。