Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

157
Views
Mostrar gráfico Frappe en el componente Svelte
<script lang="ts"> import { onMount } from 'svelte'; import { Chart } from 'frappe-charts'; let chartElem; const chartData = { labels: ["12am-3am", "3am-6pm", "6am-9am", "9am-12am", "12pm-3pm", "3pm-6pm", "6pm-9pm", "9am-12am" ], datasets: [ { name: "Some Data", type: "bar", values: [25, 40, 30, 35, 8, 52, 17, -4] }, { name: "Another Set", type: "line", values: [25, 50, -10, 15, 18, 32, 27, 14] } ] }; onMount(() => { console.log(chartElem); // always undefined... why?? new Chart({ parent: chartElem, title: "My Awesome Chart", data: chartData, type: 'axis-mixed', // or 'bar', 'line', 'scatter', 'pie', 'percentage' height: 250, colors: ['#7cd6fd', '#743ee2'] }); });
 <div bind:this={chartElem}>loading chart...</div>

Estaba tratando de trazar un gráfico en mi componente Svelte y arriba está mi código actual. De acuerdo con el documento Svelte, bind:this es la forma de referirse al nodo dom chartElem para que en el código del componente pueda trazar un gráfico en ese div .

Pero de alguna manera me sigo undefined con mi variable chartElem . ¿Dónde hice mal? ¿O tal vez tendría que ir a una biblioteca de gráficos diferente que no sea Frappe Chart?

Carta de frappés

Unión esbelta: esto

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Parece que la forma en que instalé el objeto Frappe Chart podría estar equivocada. Hice algunos ajustes al código original.

 <script lang="ts"> import { onMount, onDestroy } from 'svelte'; import { Chart } from 'frappe-charts'; let chartElem; let chart const chartData = { labels: ["12am-3am", "3am-6pm", "6am-9am", "9am-12am", "12pm-3pm", "3pm-6pm", "6pm-9pm", "9am-12am" ], datasets: [ { name: "Some Data", type: "bar", values: [25, 40, 30, 35, 8, 52, 17, -4] }, { name: "Another Set", type: "line", values: [25, 50, -10, 15, 18, 32, 27, 14] } ] }; onMount(() => { chart = new Chart(chartElem, { title: "My Awesome Chart", data: chartData, type: 'axis-mixed', // or 'bar', 'line', 'scatter', 'pie', 'percentage' height: 250, colors: ['#7cd6fd', '#743ee2'] }); }); onDestroy(() => { chart = null; }); <div bind:this="{chartElem}"></div>

Esto funcionó para mí.

Además, vale la pena registrar el método de ciclo de vida onDestroy para que el objeto del gráfico se pueda limpiar correctamente.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!