Questo esempio mostra una visualizzazione personalizzata locale di un'app in fase di sviluppo, non una visualizzazione personalizzata disponibile in Looker Marketplace.
I componenti di visualizzazione di Looker dispongono di un sistema adattatore che consente agli sviluppatori di ignorare i tipi di grafici esistenti o di aggiungere opzioni completamente nuove.
Questa opzione può essere utile nelle seguenti circostanze:
- Hai creato visualizzazioni React personalizzate da utilizzare con i componenti Looker.
- Vuoi sostituire una visualizzazione predefinita esistente di Looker con una creata su una libreria diversa.
La possibilità di sostituire o aggiungere grafici può essere particolarmente importante se stai creando un'applicazione che consente agli utenti di modificare il tipo di visualizzazione del grafico durante una sessione.
Premesse
Dopo aver eseguito il rendering di una query nell'interfaccia di Explore di Looker e aver trasmesso il suo Query.client_id
nei componenti di visualizzazione di Looker, puoi modificare il tipo di grafico aggiornando la proprietà type
della proprietà config
.
Ogni valore accettato dalla proprietà type
è associato a un componente React specifico. Di conseguenza, quando type
è impostato su line
, viene eseguito il rendering di un componente Line
; se type
è impostato su area
, viene eseguito il rendering di un componente Area
e così via.
La proprietà chartTypeMap
del componente Visualization
consente di aggiungere una nuova voce o di sostituire le voci esistenti nella mappa tipo/componente che associa ciascun valore type
a un particolare componente.
Requisiti
Analogamente all'uso dei componenti di visualizzazione e della proprietà query
per visualizzare un esempio di visualizzazione semplice, devi iniziare importando il componente DataProvider
e fornendo un'istanza dell'SDK autenticata. L'esempio seguente viene creato nel framework delle estensioni di Looker e l'SDK proviene da ExtensionContext
.
In DataProvider
, puoi eseguire il rendering dei componenti Query
e Visualization
per richiedere dati dall'SDK Looker e visualizzare la visualizzazione prevista all'interno dell'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>
)
}
Aggiungere un nuovo tipo di grafico
Come con il semplice esempio di visualizzazione, puoi modificare il tipo di grafico visualizzato passando un config override al componente Query
.
<Query query="z8klgi4PJKAl7TXgTw1opS" config={{ type: 'pie' }}>
<Visualization />
</Query>
In questo caso, type
è stato impostato su pie
, ovvero un grafico offerto per impostazione predefinita dai componenti di Looker. Ma cosa succede se volessi utilizzare un grafico che 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 del sistema dell'adattatore.
Se, ad esempio, vuoi aggiungere un nuovo grafico radar alla mappa del tipo/componente, aggiungilo al chartTypeMap
in questo modo:
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 queste operazioni:
- Importa il componente React
MyCustomRadar
- Assegna il tasto
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 visualizzazione in Looker:
Analogamente, puoi sostituire i grafici esistenti se vuoi eseguire il rendering della tua versione. Nell'esempio seguente, il grafico a linee dei componenti Looker predefiniti viene sostituito con un componente grafico 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>
)
}
Ogni volta che il componente Query
rileva una query in cui il tipo di visualizzazione è impostato su line
, l'implementazione personalizzata viene sostituita al posto dell'impostazione predefinita di Looker.
Passaggi successivi
- Utilizzare i componenti di visualizzazione e la proprietà
dashboard
per visualizzare una visualizzazione semplice - Utilizzare i componenti di visualizzazione e la proprietà
query
per visualizzare una visualizzazione semplice - Utilizzare i componenti di visualizzazione per creare una visualizzazione personalizzata
- Tabelle di visualizzazione e proprietà delle query