I have a React component that gets an array of ids (strings) from props as subs, and what I want it to do is for every id in the array, get it's data from the server and save it in another array SubscribedMembers using useState. Here's my code:
import {useState , useEffect} from 'react'
import axios from 'axios'
function Subs({subs}) {
const [SubscribedMembers, setSubscribedMembers] = useState([])
const getMember = async (id) => {
let {data} = await axios.get("http://localhost:8000/api/members/" + id)
setSubscribedMembers([...SubscribedMembers , data])
}
useEffect(() => {
subs.map(async (x) => {
await getMember(x)
})
} , [subs])
const subsMap = SubscribedMembers.map(member => {
return <li key={member._id}>{member.name}</li>
})
return (
<div>
<ul>{subsMap}</ul>
</div>
)
}
export default Subs
The problem is, while I expect the setSubscribedMembers function inside the getMember function to set the previous data and the new one each iteration, it only sets the last one (or just one, every time it's something else)
What am I doing wrong here?