Estou tentando terminar um projeto para um bootcamp que estou participando, mas estou empacado em um problema já faz um tempo. Alguém consegue me dizer como eu faço para passar o id específico de cada pokémon para a função loadPokemonDetail? Eu preciso passar os dados específicos do pokémon que o usuário clicou. Por exemplo, se o user clicou no bulbasauro, a página deve exibir apenas as informações do bulbasauro.
const pokemonList = document.getElementById("pokemonList");
const loadMoreButton = document.getElementById("loadMoreButton");
const maxRecords = 151;
let offset = 0;
const limit = 10;
function loadPokemonItems(offset, limit) {
pokeApi
.getPokemons(offset, limit)
.then((pokemons = []) => {
const pokemonItems = pokemons
.map((pokemon) => {
return `
<li class="pokemon ${pokemon.type}">
<a href="pokemon.html">
<span class="number">#${pokemon.number}</span>
<span class="name">${pokemon.name}</span>
<div class="detail">
<ul class="types">
${pokemon.types
.map(
(type) => `
<li class="type ${type}">${type}</li>
`
)
.join("")}
</ul>
<img src="${pokemon.image}" alt="${pokemon.name}" />
</div>
</a>
</li>
`;
})
.join("");
pokemonList.innerHTML += pokemonItems;
return pokemons;
})
.then((pokemons) => {
const pokemonListItems = Array.from(
pokemonList.getElementsByTagName("a")
);
pokemonListItems.forEach((pokemonLi) => {
pokemonLi.addEventListener("click", () =>
pokemons.forEach(loadPokemonDetail)
);
});
});
}
Esta é a função "loadPokemonDetail":
const root = document.getElementById("root");
const loadPokemonDetail = (pokemon) => {
console.log("POKEMON:", pokemon.name)
return `
<div>
<h1>${pokemon.name}<h1>
</div>
`;
};
loadPokemonDetail();
No momento eu só consigo passar o array inteiro para a função, e não o pokémon específico. Qualquer algoritmo que resolva este problema está valendo, eu só quero muito desempacar desse projeto xD.
https://github.com/kellysondias/pokedex-dio/blob/main/assets/js/pokemon/index.js