I've build an react app where I am fetching all the repositories from a user. I am trying to fill a dropdown with the returned items, but it does not work. I only get it to make a dropdown for every repository.
if (!repos || repos.length === 0) return <p>No repos, sorry</p>;
return (
<ul>
<h2 className='list-head'>Available Public Repositories</h2>
{repos.map((repo) => {
return (
<select>
<option>{repo.name}</option>
<select/>
);
})}
</ul>
How do I fill a dropdown with the returned data?
CodePudding user response:
It is because you have the <select> tag inside the map function. It is returning each element with a <select> tag.
Therefore all you need to do this take the select tags out of the map.
I also added a key and value for <option>. You can have it according to what you have in your repos data
<ul>
<h2 className='list-head'>Available Public Repositories</h2>
<select>
{repos.map((repo) => {
return (<option key={repo.repoId} value={repo.name}>{repo.name}</option> );
})}
<select/>
</ul>
