import React, { useState } from 'react'
export const BreedsSelect = props => {
const [selectedBreed, setSelectedBreed] = useState(null)
const options = props.breeds
return (
<div>
<select
value={selectedBreed}
onChange={e => setSelectedBreed(e.target.value)}
>
{options?.map(breed => {
;<option>{breed}</option>
})}
</select>
</div>
)
}
In the above code I get an error that options.map is not a function. How can this be resolved? The following code calls the above code.
import React, { useEffect, useState } from 'react' // DO NOT DELETE
import { BreedsSelect } from './BreedsSelect'
export const DogListContainer = () => {
const [breeds, setBreeds] = useState(null)
useEffect(() => {
fetch('https://dog.ceo/api/breeds/list/all')
.then(res => res.json())
.then(data => {
setBreeds(data.message)
})
}, [])
return <BreedsSelect breeds={breeds} />
}
Advertisement
Answer
im trying it and it cause of the data was late to read and the browser was too fast to read it so i tryin with this
import React, { useEffect, useState } from "react"; // DO NOT DELETE
import { BreedsSelect } from "./BreedsSelect";
export const DogListContainer = () => {
const [breeds, setBreeds] = useState(null);
useEffect(() => {
const fetchAll = async () => {
try {
const data = await fetch("https://dog.ceo/api/breeds/list/all");
if (!data.ok) throw new Error("error");
return data;
} catch (error) {
return error;
}
};
fetchAll()
.then((res) => {
return res.json();
})
.then((data) => {
setBreeds(data.message);
});
}, []);
return <BreedsSelect breeds={breeds} />;
};
idk if it woukd be helps u or no