Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

155
Vistas
React function is always called with same parameter in a loop

I have a data array and display its elements in table rows. The last table cell includes a menu item which calls a function with parameter. The problem is that function handleOpenApproveDialog is always fired with same data element, the last element of myData array.

CodeSandbox link

  const handleOpenApproveDialog = (ev, item) => {
    setAnchorEl(null);
    dispatch(openApproveDialog(item));
    //* problem: incoming item parameter is always same. The last element of myData array.
  };

  <TableBody>
    {myData.map((n, i) => {
      return (
        <TableRow
          tabIndex={-1}
          key={i}
          onClick={(event) => handleRowClick(event, n)}
        >

          <TableCell className="p-4 md:p-16" component="th" scope="row">
            {n.company}
          </TableCell>

          <TableCell
            className="p-4 md:p-16"
            component="th"
            scope="row"
            align="right"
          >
            <IconButton
              aria-label="actions"
              id="actions-button"
              aria-controls={isMenuOpen ? "actions-menu" : undefined}
              aria-expanded={isMenuOpen ? "true" : undefined}
              aria-haspopup="true"
              onClick={(ev) => {
                handleMenuClick(ev);
                ev.stopPropagation();
              }}
            >
              <MoreVertIcon />
            </IconButton>
            <Menu
              id="actions-menu"
              anchorEl={anchorEl}
              open={isMenuOpen}
              onClose={handleMenuClose}
            >
              <MenuItem
                onClick={(ev) => {
                  handleOpenApproveDialog(ev, n);
                  ev.stopPropagation();
                }}
              >
                Approve
              </MenuItem>
            </Menu>
          </TableCell>
        </TableRow>
      );
    })}
  </TableBody>
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda