1
resposta

[ADICIONANDO ESTADO LOCAL] Uncaught TypeError: Cannot read properties of undefined (reading 'inscrever')

Quando declaro o .inscrever no componentdidmount, o chrome reclama que a propriedade é indefinida:

class FormularioDeCadastro extends Component {
  constructor(props) {
    super(props);
    this.titulo = "";
    this.texto = "";
    this.categoria = "Sem Categoria";
    this.state = { categorias: [] };
  }

  componentDidMount() {
    this.props.categoria.inscrever(this._novasCategorias.bind(this));
  }

  _novasCategorias(categorias) {
    this.setState({ ...this.state, categorias });
  }

----Categorias.js-----------------------

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

  inscrever(func) {
    this._inscritos.push(func);
  }

Como posso arrumar esse erro ?

1 resposta

Ola Jones, boa noite!

Este erro aconteceu pois a variável anterior ao inscrever está undefined, ou seja, o categoria.

Verifique no arquivo App.js se o prop que você está passando é categoria ou categorias (com um S no final), caso seja categorias, apenas coloque o S no final que resolverá o problema!

Caso não seja, envie aqui o App.js para que eu consiga ter uma visão melhor do possível problema.

Bons estudos!

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