I am trying to update setState in a for loop, but for some reason state isn't being copied it's just being replaced. There should be 2 clients, instead I am getting one. Can anyone tell me why this is happening? The console.log is returning both clients.
const handleViewClients = () => {
    for (let i = 0; i < clients.length; i++) {
      console.log(clients[i].clientid);
      fetch("http://localhost:3005/all-clients/" + clients[i].clientid)
        .then((response) => response.json())
        .then((result) => {
          console.log(result);
          setBarbersClient({
            ...barbersClient,
            client: result,
          });
        });
    }
  };
I have also tried this... The console.log is returning what I need
 Promise.all(
      clients.map((client) =>
        fetch("http://localhost:3005/all-clients/" + client.clientid)
      )
    )
      .then((resp) => resp.json())
      .then((result) => {
        console.log(result.username)
        setBarbersClient({
          ...barbersClient,
          client: result,
        });
        
      });
Here is the route from the server side
app.get("/all-clients/:clientid", (req, res) => {
  db.NewClientsx.findOne({
    where: {
      id: req.params.clientid,
    },
  }).then((response) => {
    res.json(response);
  });
});
 
     
    