1
resposta

TypeError: Cannot read property 'push' of undefined

Olá, tudo bem?

estou recebendo este erro:

TypeError: Cannot read property 'push' of undefined adicionarCategoria [as criarCategoria]

4 | } 5 | 6 | adicionarCategoria(novaCategoria){

7 | this.itens.push(novaCategoria) 8 | } 9 | }

Porém o this.itens está instanciado direitinho:

export default class Categorias {
    constructor(){
        this.itens = [];
    }

    adicionarCategoria(novaCategoria){
        this.itens.push(novaCategoria)
    }
}

O que pode estar acontecendo?

1 resposta

Você instanciou a classe antes de chamar o método? Ex.:

class Categorias {
  constructor() {
    this.itens = [];
  }

  adicionarCategoria(novaCategoria) {
    this.itens.push(novaCategoria);
  }
}

const cat = new Categorias();

cat.adicionarCategoria("teste");

console.log(cat.itens);

//Output:  [ 'teste' ]

No seu caso, como você está exportando essa classe, ficaria mais ou menos assim:

import Categoria from "./Categorias" //Use o caminho do arquivo de sua classe

...

const catInstance = new Categoria(); //Atenção se é o mesmo nome do import e não da classe
catInstance.adicionarCategoria("teste);

console.log(catInstance .itens);
//Output:  [ 'teste' ]

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software