No se si se han fijado que la pokedex no sigue el orden correcto.
es decir despues de venusaur salta a charmander con el numero 5. y no el 4 que es el verdadero orden.
para solucionar eso.
modifique el codigo de pokedex.js
import React, { useState, useEffect } from "react";
import { SafeAreaView } from "react-native";
import { getPokemonsApi, getPokemonDetailsByUrlApi } from "../api/pokemon";
import PokemonList from "../components/PokemonList";
export default function Pokedex() {
const [pokemons, setPokemons] = useState([]);
const [nextUrl, setNextUrl] = useState(
"https://pokeapi.co/api/v2/pokemon?limit=20"
);
const [currentOffset, setCurrentOffset] = useState(0); // Nuevo estado para el offset
useEffect(() => {
(async () => {
await loadPokemons();
})();
}, []);
const loadPokemons = async () => {
try {
const response = await getPokemonsApi(nextUrl);
setNextUrl(response.next);
setCurrentOffset(currentOffset + response.results.length); // Actualizar el offset
const pokemonsArray = [];
for await (const [index, pokemon] of response.results.entries()) {
const pokemonDetails = await getPokemonDetailsByUrlApi(pokemon.url);
pokemonsArray.push({
id: pokemonDetails.id,
name: pokemonDetails.name,
type: pokemonDetails.types[0].type.name,
order: currentOffset + index + 1, // Calcular el orden global
image: pokemonDetails.sprites.other["official-artwork"].front_default,
});
}
setPokemons([...pokemons, ...pokemonsArray]);
} catch (error) {
console.error(error);
}
};
return (
<SafeAreaView>
<PokemonList
pokemons={pokemons}
loadPokemons={loadPokemons}
isNext={nextUrl}
/>
</SafeAreaView>
);
}
de esta manera si los pokemon se cargaran segun el orden verdadero de la pokedex original.
espero que les halla funcionado