Questo esempio mostra una visualizzazione personalizzata locale di un'app in fase di sviluppo, non una visualizzazione personalizzata disponibile su Looker Marketplace.
I componenti di visualizzazione di Looker dispongono di un sistema di adattatori che consente agli sviluppatori di eseguire l'override dei tipi di grafici esistenti o di aggiungere opzioni di tipi di grafici completamente nuovi.
Questa opzione può essere utile nelle seguenti circostanze:
- Hai creato visualizzazioni React personalizzate che vuoi utilizzare con i componenti di Looker.
- Vuoi sostituire una visualizzazione predefinita di Looker esistente con una basata su una libreria diversa.
La possibilità di sostituire o aggiungere grafici può essere particolarmente pertinente se stai creando un'applicazione che consente agli utenti di modificare il tipo di visualizzazione del grafico durante una sessione.
Sfondo
Dopo aver visualizzato una query nell'interfaccia di esplorazione di Looker e aver passato il relativo Query.client_id
ai componenti di visualizzazione di Looker, puoi modificare il tipo di grafico aggiornando la proprietà type
della proprietà config
.
Ogni valore accettato dalla proprietà type
viene mappato a un componente React specifico. Pertanto, quando type
è impostato su line
, viene visualizzato un componente Line
; quando type
è impostato su area
, viene visualizzato un componente Area
e così via.
La proprietà chartTypeMap
del componente Visualization
ti consente di aggiungere una nuova voce alla mappa tipo/componente o di sostituire le voci esistenti che associano ogni valore type
a un determinato componente.
Requisiti
Devi iniziare importando il componente DataProvider
e fornendo un'istanza SDK autenticata. L'esempio seguente è stato creato nel framework di estensioni di Looker e l'SDK proviene da ExtensionContext
.
In DataProvider
, puoi visualizzare i componenti Query
e Visualization
per richiedere i dati dall'SDK di Looker e visualizzare la visualizzazione prevista all'interno della tua applicazione.
La configurazione è la seguente (nella proprietà query
, sostituisci il valore con Query.client_id
della query):
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>
)
}
Aggiunta di un nuovo tipo di grafico
Puoi modificare il tipo di grafico visualizzato passando una sostituzione della configurazione al componente Query
.
<Query query="z8klgi4PJKAl7TXgTw1opS" config={{ type: 'pie' }}>
<Visualization />
</Query>
In questo caso, type
è stato impostato su pie
: un grafico offerto per impostazione predefinita dai componenti di Looker. Ma cosa succede se vuoi utilizzare un grafico non offerto per impostazione predefinita? In questo caso, puoi utilizzare la proprietà chartTypeMap
di Visualization
per aggiungere o sostituire i componenti del grafico nella mappa tipo/componente nel sistema di adattamento.
Ad esempio, se vuoi aggiungere un nuovo grafico radar alla mappa di tipo/componente, aggiungilo a chartTypeMap
come segue:
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>
)
}
Questo codice esegue le seguenti operazioni:
- Importa il componente
MyCustomRadar
React - Assegna la chiave
radar
alla proprietàconfig.type
- Aggiorna la proprietà
chartTypeMap
in modo che il sistema di mappatura dei tipi sappia cosa visualizzare per untype
diradar
Ecco come viene visualizzato nell'area di prova di visualizzazione di Looker:
Analogamente, puoi sostituire i grafici esistenti se vuoi visualizzare la tua versione. Nell'esempio seguente, il grafico a linee dei componenti di Looker predefiniti viene sostituito con un componente grafico a linee personalizzato:
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>
)
}
Ora, ogni volta che il componente Query
rileva una query in cui il tipo di visualizzazione è impostato su line
, verrà visualizzata l'implementazione personalizzata anziché quella predefinita di Looker.
Passaggi successivi
- Utilizzare i componenti di visualizzazione e la proprietà
dashboard
per eseguire il rendering di una visualizzazione semplice - Utilizzare i componenti di visualizzazione per creare una visualizzazione personalizzata
- Tabelle delle proprietà di visualizzazione e query