O porquê deu esse erro?
A mensagem de erro que você recebeu no Console do DevTools:
Uncaught TypeError: this.personagensSelecionados is not a function
Significado do erro: Esse erro indica que o código está tentando chamar this.personagensSelecionados() como se fosse uma função, mas na verdade this.personagensSelecionados não é uma função — provavelmente é um array, objeto, ou está indefinido.
Causa provável: Na linha 24 do arquivo personagem-view.js, dentro do método criaPersonagem, o código está tentando executar this.personagensSelecionados() — com parênteses — o que só é válido se personagensSelecionados for uma função. Se personagensSelecionados for, por exemplo, um array de personagens selecionados, o correto seria acessar ou iterar sobre ele, não chamá-lo como função.
Como corrigir: Você pode revisar a definição da classe PersonagemView e verificar como personagensSelecionados está sendo definido. Aqui vai um exemplo de correção:
Se personagensSelecionados for um array:
// Errado
const selecionados = this.personagensSelecionados();
// Correto
const selecionados = this.personagensSelecionados;
Se for uma função, certifique-se de que está definida corretamente:
js
class PersonagemView {
personagensSelecionados() {
// retorna um array ou algo útil
}
}
Ou, se estiver usando uma propriedade:
class PersonagemView {
constructor() {
this.personagensSelecionados = []; // array, não função
}
}
Dica extra: Se você estiver usando arrow functions ou métodos que dependem de this, verifique se o contexto (this) está correto. Às vezes, o erro vem de this estar referenciando outro objeto, especialmente em callbacks.
Se quiser, posso revisar o trecho do código onde isso ocorre e sugerir uma correção mais precisa. Deseja colar aqui o conteúdo da classe PersonagemView ou pelo menos o método criaPersonagem?
e não está renderizando as figuras.