2017-10-19 60 views
0

我收到錯誤:樓盤X上不存在類型Y []

questions does not exist on type 'Quiz[]'

這是我的模型

export interface Quiz { 
$key ?: string; 
categorie ?: string; 

questions : Questions[] 
} 

export interface Questions { 

id ?: number; 
question ?: string; 
answer?: string; 

} 

這是我的代碼

import {Quiz} from "../models/quiz"; 

export class ProfComponent { 

quiz = [] as Quiz[]; 


nextQuestion(quiz) { 

    this.quiz.questions.push(quiz.questions) 
} 


} 

我不能將數據推入quiz.questions

什麼可能是錯的?

+0

異步nextQuestion(測驗){ 等待this.quiz.push(測驗) } – Afnor

回答

0

您通過Quiz[]聲明quiz屬性作爲數組,因此,你需要訪問數組的項目能夠訪問questions財產。

但你可能想要的屬性重新聲明只是Quiz ...

而且你需要先初始化questions陣列能夠調用push就可以了。

import {Quiz} from "../models/quiz"; 

export class ProfComponent { 

    quiz = {questions: []} as Quiz; 

    nextQuestion(quiz) { 
    this.quiz.questions.push(quiz.questions) 
    } 

} 

或者,如果你想擁有測驗的陣列,像這樣做:

import {Quiz} from "../models/quiz"; 

export class ProfComponent { 

    quizes = [{questions: []}] as Quiz[]; // array of Quiz objects 

    nextQuestion(quiz) { 
    this.quizes[0].questions.push(quiz.questions); // access the first quiz 
    } 

} 
+0

但是,如果我想**測驗**變量是一個數組我怎麼能這樣做? – Afnor

+0

然後你需要在該數組中有一些測驗實例。將更新我的答案。 –

0

前推值,則需要初始化數組,

nextQuestion(quiz) { 
    this.quiz.questions = []; 
    this.quiz.questions.push(quiz.questions); 
} 
+0

同樣的錯誤在你添加的行 – Afnor

0

要麼

quiz = new Quiz(); 

this.quiz[0].questions.push(quiz.questions) 

當初始化quiz爲數組,你需要解決一個特定的陣列項獲得實際Quiz,或者你不把它的數組,如果不是意圖

+0

我想存儲幾個**測驗**到測驗[],所以我需要這個數組,我試過你的解決方案,但我得到的錯誤** this.quiz [0] .questions.push不是一個函數** – Afnor

+0

有需要在'this.quiz [0]'中首先是一個'Quiz'。也許是'this.quiz.push(new Quiz());''this.quiz [0] .questions.push(quiz.questions)之前'' –

+0

我忘記提及我已經成功推出第一個我的數組中的數據,但我無法訪問變量** this.quiz.questions **推出更多的問題,我不知道爲什麼! – Afnor

相關問題