Uno de los elementos de interfaz de usuario más comunes para presentar sus datos es una tabla. Resulta que hay muchos aspectos para controlar cuando se trabaja con tablas, como:
En esta serie de dos partes, aprenderá los entresijos de trabajar con datos tabulares en React utilizando el componente React Bootstrap Table. Podrás crear tablas sofisticadas y de aspecto profesional por defecto con poco esfuerzo y, sin embargo, podrás personalizar cada parte que desees..
Supongo que está familiarizado con React y se centrará en trabajar con React Bootstrap Table. Envato Tuts + tiene una gran serie de comentarios sobre React que puedes leer.
En pocas palabras, utilicé la aplicación react-create-crea para crear una aplicación de vainilla React y luego instalé la tabla reaccion-bootstrap-table: npm instalar react-bootstrap-table --save
.
Es importante agregar el CSS bootstrap al archivo public / index.html.
React App
Si utiliza WebStorm de JetBrains y desea ejecutar las pruebas, agregue --env = jsdom
en su configuración de ejecución.
Comenzaremos con una tabla básica. Aquí hay un componente básico de la tabla. Importa BoostrapTable y TableHeaderColumn de react-bootstrap-table y también el CSS del directorio dist.
los hacer() El método representa una tabla con tres columnas: "ID", "Nombre" y "Valor". Los datos reales en la tabla provienen de la propiedad "datos" (this.props.data). Los datos contienen los nombres de algunos personajes del hilarante programa Arrested Development..
importar React, Componente desde 'reaccionar'; importe BootstrapTable, TableHeaderColumn desde 'react-bootstrap-table'; importar '… /css/Table.css'; importar '... / ... / node_modules / react-bootstrap-table / css / react-bootstrap-table.css' clase Table1 extiende el Componente render () return (); exportar tabla1 por defecto;CARNÉ DE IDENTIDAD Nombre Valor
Instalé la BasicTable en el método render () del App.js estándar y pasé algunos datos codificados:
importar React, Componente desde 'reaccionar'; importar './App.css'; importar Table1 desde './components/Table1' var data = [id: 1, name: 'Gob', value: '2', id: 2, name: 'Buster', value: '5', id: 3, nombre: 'George Michael', valor: '4']; la aplicación de clase extiende el Componente render () return (); exportar la aplicación por defecto;Tabla basica
Para ver la tabla, escriba: npm start
. La configuración creada por crear-reaccionar-aplicación vigila tu código y lo recompilará cada vez que cambies algo, por lo que necesitas ejecutarlo solo una vez y luego cada cambio se reflejará automáticamente.
Compilado con éxito! Ahora puede ver la tabla de reacción en el navegador. Local: http: // localhost: 3000 / En su red: http://192.168.1.136:3000/ Tenga en cuenta que la versión de desarrollo no está optimizada. Para crear una construcción de producción, use la construcción de hilados..
Aquí está el resultado:
Tenga en cuenta que cada columna tiene exactamente el mismo ancho.
Puedes controlar muchos aspectos de las columnas. En particular, los anchos de columna pueden especificarse en unidades absolutas como porcentajes o dejarse sin especificar. El ancho de columna de las columnas no especificadas es el resto dividido en partes iguales. Por ejemplo, para un ancho de tabla de 100 px, una columna especificó 15 px, una segunda columna especificada 25% (25 px) y una tercera columna especificada 30% (15 px).
Otras dos columnas no especificaron un ancho. Las columnas 1, 2 y 3 utilizaron 70 px juntas, lo que deja 30 px para las columnas 4 y 5, que lo dividirán por igual. Las columnas 4 y 5 tendrán un ancho de 15 px cada una. Tenga en cuenta que si se cambia el tamaño de la tabla, los números cambiarán. Solo la columna 1 siempre tendrá 15 px de ancho..
Las otras columnas se calcularán en función del ancho de la tabla. También puede administrar la alineación de texto y columnas, así como el estilo de encabezados y columnas. Este es un ejemplo de cómo especificar diferentes anchos de columna, alineación de texto y estilos personalizados:
importar React, Componente desde 'reaccionar' importar BootstrapTable, TableHeaderColumn desde 'react-bootstrap-table' import '... /css/Table.css' import '… /dist/react-bootstrap-table-all.min. la clase 2 de css amplía el componente render () return () exportar tabla2 por defectoCARNÉ DE IDENTIDAD Nombre Valor
Ya viste cómo estilizar columnas y encabezados individuales, pero el estilo puede ir mucho más allá. React-bootstrap-table ofrece muchas opciones para la personalización. En primer lugar, simplemente puede agregar los atributos de trazado y desplazamiento al componente BootstrapTable para obtener colores de fondo alternativos en cada fila:
Para estilizar todas las filas, use trClassName:
Si desea obtener realmente lujoso, el trStyle puede funcionar. Echa un vistazo al siguiente componente de la tabla que da un estilo diferente a las filas donde el nombre es "George Michael":
importar React, Componente desde 'reaccionar' importar BootstrapTable, TableHeaderColumn desde 'react-bootstrap-table' import '... /css/Table.css' import '… /dist/react-bootstrap-table-all.min. la función css 'rowClassNameFormat (row, rowIdx) // row es el objeto de row entero // rowIdx es el índice de la fila console.log (row) return row [' name '] ===' George Michael '? 'GeorgeMichael-Row': 'Otra fila'; class Table3 extiende Component render () return () exportar tabla 3 por defectoCARNÉ DE IDENTIDAD Nombre Valor
los GeorgeMichael-Row y Otra fila Las clases de CSS se definen en Table.css:
.Encabezado de la tabla fondo-color: #ccc; color azul; relleno: 10px; alineación de texto: izquierda; .GeorgeMichael-Row background-color: plum; .Other-Row background-color: greenyellow;
Una vez que tenga sus datos en una tabla, es posible que desee seleccionar algunas filas para realizar algunas operaciones en ellas. React-bootstrap-table ofrece una amplia variedad de opciones de selección. Todas las opciones están organizadas en un solo objeto que usted pasa al componente como el selectRow atributo. Estas son algunas de las opciones de selección:
Los siguientes componentes demuestran muchas de estas opciones:
importar React, Componente desde 'reaccionar' importar BootstrapTable, TableHeaderColumn desde 'react-bootstrap-table' import '... /css/Table.css' import '… /dist/react-bootstrap-table-all.min. función css 'onSelectRow (fila, isSelected, e) if (isSelected) alert (' Usted acaba de seleccionar '$ row [' name '] ") const selectRowProp = mode:' checkbox ', clickToSelect: true , no seleccionable: [2], seleccionado: [1], onSelect: onSelectRow, bgColor: 'gold'; la clase Table4 extiende el Componente render () return () exportar por defecto Table4CARNÉ DE IDENTIDAD Nombre Valor
En esta parte, creamos una aplicación React simple utilizando react-create-app, agregamos React-Bootstrap-Table, completamos una tabla con datos, trabajamos con columnas, diseñamos el estilo de la tabla y seleccionamos filas.
En la siguiente parte, continuaremos el viaje expandiendo filas, agregando filas, eliminando filas y cubriendo paginación, edición de celdas y personalización avanzada. Manténganse al tanto.