Hej,
Robię teraz projekt przy użyciu Api league of legends. Na jedenj ze stron chciałem wypisać wszystkich championów. Z api pobieram obiekt. Teraz mam problem, mam input który wyszukuje championy po nazwie i nie chce za każdym razem pobierać nowego obiektu z API. Zrobiłem kopię tego obiektu na którym pracuje, jest do jednak zmienna globalna.
Czy mozna to zrobić lepiej albo przy użyciu prevState?
let championList;
const ChampionSites = (props) => {
const [championName, setChampionName] = useState('');
const [searChchampionList, setSearchChampionList] = useState([]);
const handleChangeChampionName = (e) => {
const inputValue = e.target.value
setChampionName(inputValue);
setSearchChampionList(championList.filter(el => el.id.toUpperCase().includes(inputValue.toUpperCase())));
}
const getChampions = async () => {
try {
const result = await fetch(
`http://ddragon.leagueoflegends.com/cdn/10.16.1/data/en_US/champion.json`
);
const data = await result.json();
let copyList = Object.values(data.data);
setSearchChampionList(copyList);
championList = [...copyList];
}
catch (err) {
console.log(err);
}
};
useEffect(() => {
getChampions();
}, [])