0
respostas

"TypeError: vehicle[0].getStay is not a function" método da classe não é uma função

Pessoal. Estou tendo problemas com uma classe (Vehicle) na qual criei um método chamado "getStay()". Este método é chamado por outro método utilizado no framework Vue.js, chamado "setExitData()". Quando eu chamo este último, acabo obtendo a seguinte mensagem de erro: "TypeError: vehicle[0].getStay is not a function". Quando uso o debugger para analisar o código, verifico que o objeto vehicle[0] possui todas as propriedades que eu inseri, menos os métodos, motivo pelo qual o erro deve estar aparecendo. O que estou fazendo de errado para que este método não esteja sendo reconhecido?

Código da classe:

export class Vehicle{
    constructor(car = '', licensePlate = '', entryDate = '', entryHour = '', dailyRate = ''){
        this.car = car 
        this.licensePlate = licensePlate
        this.entryDate = entryDate
        this.entryHour = entryHour
        this.dailyRate = dailyRate

    }
    /*This method gets the stay in minutes of a given Vehicle object.*/
    getStay (){
        const entry = getDate(this.entryDate, this.entryHour)
        const exit = getDate(this.exitDate, this.exitHour)
        const diff = Math.abs(entry.getTime() - exit.getTime())

        const minutes = Math.ceil(diff / (1000 * 60))
        return minutes
    }
}

Código onde é chamado o método:

 methods:{
        setSelectedPlate(value){
            this.selectedPlate = value
        },
        /*It sets the exit of the vehicle and defines the cost of the stay.*/
        setExitData(date, time){
            const tableOfPrices = JSON.parse(localStorage.getItem('prices'))
            const vehicle = getVehicle(this.listOfVehicles, this.selectedPlate)  
            vehicle[0].exitDate = date
            vehicle[0].exitHour = time
            const stay = vehicle[0].getStay()
            vehicle[0].totalCost = vehicle[0].getStayPrice(stay, tableOfPrices[1])
            this.listOfVehicles[vehicle[1]] = vehicle[0]
            localStorage.setItem('saveRecord', JSON.stringify(this.listOfVehicles))
        }
    }