У меня есть этот вызов API, который возвращает типы покемонов, как в:
["Grass", "Poison", "Fire", "Flying", "Water", "Bug", "Normal", "Electric", "Ground", "Fighting", "Psychic", "Rock", "Ice", "Ghost", "Dragon"]
, который является результатом функции, которая принимает все значения покемонов и отфильтровывает дубликаты и тому подобное. Эта же функция используется для получения этих значений и заполнения опций выбора:
let pokemonSingleType = (() => {
let types = pokemonData.reduce((acc, { type }) => (acc.push(...type), acc), [])
types = new Set(types);
types = [...types];
console.log(types);
return <option>
{types}
</option>
})();
Это отображается ниже:
<select value={searchType} onChange={updateSearchByType.bind(this)}
className="formcontrol" id="typeSelect">
{pokemonSingleType}
</select>
, но проблема в том, что я получаю весь массив как один Выберите значение параметра. Пожалуйста, см. Изображение ниже:
Вывод, как показано ниже:
Кроме того, когда я делаю для l oop до , останавливается на первой итерации:
let pokemonSingleType = (() => {
let types = pokemonData.reduce((acc, { type }) => (acc.push(...type), acc), [])
types = new Set(types);
types = [...types];
for(let i =0; i< types.length; i++){
return <option>
{types[i]}
</option>
}
})();