En este ejemplo, se renderiza una visualización personalizada que es local para una app en desarrollo, no una visualización personalizada que está disponible en Looker Marketplace.
Los componentes de visualización de Looker tienen un sistema de adaptadores que permite a los desarrolladores anular los tipos de gráficos existentes o agregar opciones de tipos de gráficos completamente nuevos.
Esta opción puede ser útil en las siguientes circunstancias:
- Creaste visualizaciones personalizadas de React que te gustaría usar con componentes de Looker.
- Quieres reemplazar una visualización predeterminada de Looker existente por una que se compiló en una biblioteca diferente.
La capacidad de anular o agregar gráficos puede ser especialmente relevante si estás compilando una aplicación que permite a los usuarios cambiar el tipo de visualización de gráficos durante una sesión.
Segundo plano
Después de procesar una consulta en la interfaz de Explorar de Looker y pasar su Query.client_id
a los componentes de visualización de Looker, puedes modificar el tipo de gráfico actualizando la propiedad type
de la propiedad config
.
Cada valor que acepta la propiedad type
se asigna a un componente React específico. Por lo tanto, cuando type
se establece como line
, se renderiza un componente Line
; cuando type
se establece como area
, se renderiza un componente Area
, y así sucesivamente.
La propiedad chartTypeMap
del componente Visualization
te permite agregar una entrada nueva al mapa de tipo o componente, o reemplazar las entradas existentes, que asocia cada valor type
con un componente en particular.
Requisitos
Al igual que en el ejemplo Cómo usar componentes de visualización y la propiedad query
para renderizar una visualización simple, primero debes importar el componente DataProvider
y proporcionar una instancia del SDK autenticada. El siguiente ejemplo se compila dentro del framework de extensión de Looker, y el SDK proviene de ExtensionContext
.
Dentro de DataProvider
, puedes renderizar los componentes Query
y Visualization
para solicitar datos del SDK de Looker y renderizar la visualización esperada en tu aplicación.
La configuración es la siguiente (en la propiedad query
, reemplaza el valor por Query.client_id
de tu consulta):
import React, { useContext } from 'react'
import { ExtensionContext } from '@looker/extension-sdk-react'
import { DataProvider } from '@looker/components-data'
import { Query, Visualization } from '@looker/visualizations'
const App = () => {
const { core40SDK } = useContext(ExtensionContext)
return (
<DataProvider sdk={core40SDK}>
<Query query="z8klgi4PJKAl7TXgTw1opS">
<Visualization />
</Query>
</DataProvider>
)
}
Cómo agregar un nuevo tipo de gráfico
Al igual que en el ejemplo de visualización simple, puedes modificar el tipo de gráfico renderizado pasando una anulación de la configuración al componente Query
.
<Query query="z8klgi4PJKAl7TXgTw1opS" config={{ type: 'pie' }}>
<Visualization />
</Query>
En este caso, type
se estableció en pie
: un gráfico que los componentes de Looker ofrecen de forma predeterminada. Pero ¿qué sucede si deseas usar un gráfico que no se ofrece de forma predeterminada? En esa situación, puedes usar la propiedad chartTypeMap
de Visualization
para agregar o reemplazar los componentes del gráfico en el mapa de tipo o componente en el sistema del adaptador.
Si, por ejemplo, deseas agregar un nuevo gráfico radial al mapa de tipos o componentes, agrégalo a chartTypeMap
de la siguiente manera:
import React, { useContext } from 'react'
import { ExtensionContext } from '@looker/extension-sdk-react'
import { DataProvider } from '@looker/components-data'
import { Query, Visualization } from '@looker/visualizations'
import { MyCustomRadar } from '../MyCustomRadar'
const App = () => {
const { core40SDK } = useContext(ExtensionContext)
return (
<DataProvider sdk={core40SDK}>
<Query query="z8klgi4PJKAl7TXgTw1opS" config={{ type: 'radar'}}>
<Visualization chartTypeMap={{ radar: MyCustomRadar }} />
</Query>
</DataProvider>
)
}
Este código hace lo siguiente:
- Importa el componente React
MyCustomRadar
. - Asigna la clave
radar
a la propiedadconfig.type
. - Actualiza la propiedad
chartTypeMap
para que el sistema de asignación de tipos sepa qué renderizar para untype
deradar
.
Así es como se renderiza en el campo de pruebas de visualización de Looker:
Del mismo modo, puedes reemplazar los gráficos existentes si deseas renderizar tu propia versión. En el siguiente ejemplo, los componentes predeterminados de Looker el gráfico de líneas se anula con un componente de gráfico de líneas personalizado:
import React, { useContext } from 'react'
import { ExtensionContext } from '@looker/extension-sdk-react'
import { DataProvider } from '@looker/components-data'
import { Query, Visualization } from '@looker/visualizations'
import { MyCustomLine } from '../MyCustomLine'
const App = () => {
const { core40SDK } = useContext(ExtensionContext)
return (
<DataProvider sdk={core40SDK}>
<Query query="z8klgi4PJKAl7TXgTw1opS">
<Visualization chartTypeMap={{ line: MyCustomLine }} />
</Query>
</DataProvider>
)
}
Ahora, cada vez que el componente Query
encuentre una consulta en la que el tipo de visualización está configurado como line
, renderizará la implementación personalizada en lugar de la predeterminada de Looker.
Próximos pasos
- Usa componentes de visualización y la propiedad
dashboard
para renderizar una visualización simple - Usa componentes de visualización y la propiedad
query
para renderizar una visualización simple - Usar componentes de visualización para crear una visualización personalizada
- Tablas de propiedades de visualización y consulta