Material-UI DataGrid/DataGridPro: Cómo persistir el estado de las columnas a través de la re-renderización, cuando se cambia su visibilidad con la barra de herramientas de la columna DataGrid.
Estamos utilizando MUI DataGrid en nuestro proyecto basado en React.
En este momento, estoy intentando guardar/persistir el estado de las columnas después de cambiar la visibilidad de algunas columnas con el menú de columnas de la barra de herramientas de DataGrid, ya que actualmente después de volver a renderizar, vuelve a la configuración predeterminada de columnas.
Me gustaría saber cómo puedo acceder al estado de DataGrid/el estado de visibilidad de las columnas en DataGrid para poder ajustarlo/guardarlo/reutilizarlo más tarde.
Hasta ahora, he intentado usar un apiRef, pero lo único que obtuve de apiRef.current fue un objeto vacío. A continuación, adjunto un ejemplo básico de códigoSandbox para mostrar cómo intenté acceder a él.
Tal vez haya un enfoque mejor/diferente, o simplemente necesito crear el estado de alguna manera. Nos gustaría persistir el estado de las columnas como preferencia del usuario posiblemente en el futuro, por lo que esto es vital para que eso suceda.
Todas las sugerencias son bienvenidas y les agradezco de antemano.
davy.ai
Guardando/persistiendo el estado de las columnas en MUI DataGrid en React
Problema
Actualmente estamos usando MUI DataGrid en nuestro proyecto basado en React y estamos tratando de guardar o persistir el estado de las columnas después de cambiar la visibilidad de algunas columnas con el menú de columna de la barra de herramientas de DataGrid. Sin embargo, notamos que después de volver a renderizar, vuelve a la configuración de columnas predeterminada, lo cual va en contra de nuestro objetivo de intentar guardar las preferencias del usuario.
Solución
Para acceder al estado de DataGrid/estado de visibilidad de las columnas en DataGrid para poder ajustarlo/guardarlo/reutilizarlo más tarde, podemos usar la propiedad
apiRef
para acceder a la API subyacente del componente DataGrid. Luego podemos llamar al métodogetState
de la API para obtener el estado actual de DataGrid, incluyendo el estado de visibilidad de las columnas.Aquí está cómo podemos hacer esto en nuestro código:
En este código, creamos una referencia para
api
y la establecemos cuando se instancia DataGrid usandohandleDataGridReady
. Luego, manejamos el cambio de visibilidad de las columnas usandohandleColumnsChange
y llamamos agetState
enapiRef
para obtener el estado actual de DataGrid, que incluye el estado de visibilidad de las columnas.Con esta solución, podemos acceder al estado de visibilidad de las columnas en DataGrid y guardarlo como preferencias del usuario para uso futuro.
Conclusión
Es posible guardar o persistir el estado de las columnas en MUI DataGrid accediendo a la API subyacente del componente DataGrid a través de
apiRef
. Al usargetState
deapiRef
, podemos obtener el estado actual de DataGrid, incluyendo el estado de visibilidad de las columnas. Esto nos puede ayudar a guardar las preferencias del usuario y reutilizarlas más tarde.