es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo crear dinámicamente una matriz de tablas en ReactJS?

Quiero hacer que mi fila de tabla sea dinámica para que pueda agregar automáticamente nuevos datos de la base de datos de MySQL, pero no sé cómo. ¿Puedes ayudarme?

Aquí está mi dato estático que quería hacer dinámico.

“`
const data = {
rows: [
{
Campus_name: 'National Arabella SHS',
tel_number: ' 123-12-123',
action:

<div classname='action-icon-container'>
<tooltip title="Edit" trigger="hover">
<link to='/admin/campus/edit-campus/:id' state="{{bc_edit_type" :="" 1}}=""><mdedit classname='action-icon edit'></mdedit>
</tooltip>
</div>

},
{
Campus_name: 'College of Arabella – Main',
tel_number: ' 123-12-123',
action:

<div classname='action-icon-container'>
<tooltip title="Edit" trigger="hover">
<mdedit classname='action-icon edit'></mdedit>
</tooltip>
</div>

},
{
Campus_name: 'College of Arabella Extension',
tel_number: ' 123-12-123',
action:

<div classname='action-icon-container'>
<tooltip title="Edit" trigger="hover">
<mdedit classname='action-icon edit'></mdedit>
</tooltip>
</div>

},
]

};

<pre><code><br />Aquí está la parte donde obtengo los datos de la base de datos y los almaceno en la variable 'campusValues'.

</code></pre>

const CampusPage = () => {

const [campusValues, setCampusValues] = useState([]);

const GetCampusValues = () => {
Axios.get("http://localhost:5000/campusValues").then((response) => {
console.log(response);
setCampusValues(response.data);
});
}

useEffect(() => {
let ignore = false;
if (!ignore)<br />
GetCampusValues();
return () => { ignore = true; }
},[]);

return (…);
}

export default CampusPage

“`

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para hacer que la fila de la tabla sea dinámica y muestre datos de la base de datos MySQL, es necesario mapear a través del array campusValues y renderizar una nueva fila para cada objeto en el array. Aquí tienes un ejemplo de cómo puedes transformar los datos estáticos en una tabla dinámica.

    const CampusPage = () => {
      const [campusValues, setCampusValues] = useState([]);
    
      // Obtener los datos de la base de datos y actualizar el estado
      const getCampusValues = () => {
        Axios.get("http://localhost:5000/campusValues")
          .then((response) => {
            setCampusValues(response.data);
          })
          .catch((error) => {
            console.log(error);
          });
      };
    
      useEffect(() => {
        getCampusValues();
      }, []);
    
      return (
        <table>
          <thead>
            <tr>
              <th>Nombre del Campus</th>
              <th>Número de Teléfono</th>
              <th>Acción</th>
            </tr>
          </thead>
          <tbody>
            {campusValues.map((campus, index) => (
              <tr key="{index}">
                <td>{campus.Campus_name}</td>
                <td>{campus.tel_number}</td>
                <td>
                  <div classname="action-icon-container">
                    <tooltip title="Editar" trigger="hover">
                      <link to="{`/admin/campus/edit-campus/${campus.id}`}" state="{{" bc_edit_type:="" 1="" }}="">
                        <mdedit classname="action-icon edit"></mdedit>
    
                    </tooltip>
                  </div>
                </td>
              </tr>
            ))}
          </tbody>
        </table>
      );
    };
    
    export default CampusPage;
    

    La función map() se utiliza para iterar sobre cada objeto en el array campusValues y renderizar una nueva fila para cada objeto. La propiedad key se establece con el valor del índice para identificar cada fila de forma única. Dentro del componente de la fila, puedes acceder a las propiedades de cada objeto del campus y mostrarlos según sea necesario. En este caso, hemos utilizado las propiedades Campus_name y tel_number para llenar las dos primeras columnas de la tabla. Finalmente, la columna de acción también se renderiza utilizando el mismo código que los datos estáticos, el cual muestra un icono de edición y enlaces a la página de edición.

    Esto te permitirá tener una tabla dinámica que se actualiza con nuevos datos de la base de datos MySQL.

Comments are closed.