ChartJS Svelte中的React性图表

irtuqstp  于 2023-02-16  发布在  Chart.js
关注(0)|答案(1)|浏览(306)

我有麻烦的React图表在苗条。我希望图表更新显着时,数据的能量变化。什么是失踪在这个代码?

  1. <script lang="ts">
  2. import { Line } from "svelte-chartjs";
  3. import { onMount } from "svelte";
  4. let labels = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"];
  5. let energy =[1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
  6. let data = {
  7. labels,
  8. datasets: [
  9. {
  10. label: "Dataset",
  11. data: energy,
  12. borderColor: "rgb(255, 99, 132)",
  13. backgroundColor: "rgba(255, 99, 132, 0.5)"
  14. },
  15. ]
  16. };
  17. $:labels,energy,data
  18. onMount(() => {
  19. const interval = setInterval(() => {
  20. rendom();
  21. console.log(energy)
  22. }, 1000);
  23. return () => {
  24. clearInterval(1);
  25. };
  26. })
  27. function rendom() {
  28. let index=Math.round(Math.random()*9);
  29. energy[index]=Math.round(Math.random()*100)
  30. }
  31. </script>
  32. <Line data={data}/>

我的问题的答案。

dgjrabp2

dgjrabp21#

看看Line Chart Example,从chart.jsChartJS.register()进行一些导入似乎是必要的
svelte-chartjs中的Line组件导出对图表的引用,更改数据后可在该图表上调用.update()。可通过局部变量和bind:访问该引用
注意,clearInterval()引用间隔(并且可以将rendom更改为random,如Math.random()中所示)
REPL

  1. <script>
  2. import {
  3. Chart as ChartJS,
  4. Title,
  5. Tooltip,
  6. Legend,
  7. LineElement,
  8. LinearScale,
  9. PointElement,
  10. CategoryScale,
  11. } from 'chart.js';
  12. ChartJS.register(
  13. Title,
  14. Tooltip,
  15. Legend,
  16. LineElement,
  17. LinearScale,
  18. PointElement,
  19. CategoryScale
  20. );
  21. import { Line } from "svelte-chartjs";
  22. import { onMount } from "svelte";
  23. let labels = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"];
  24. let energy =[1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
  25. let chartRef
  26. let data = {
  27. labels,
  28. datasets: [
  29. {
  30. label: "Dataset",
  31. data: energy,
  32. borderColor: "rgb(255, 99, 132)",
  33. backgroundColor: "rgba(255, 99, 132, 0.5)"
  34. },
  35. ]
  36. };
  37. onMount(() => {
  38. const interval = setInterval(() => {
  39. rendom();
  40. }, 1000);
  41. return () => {
  42. clearInterval(interval);
  43. };
  44. })
  45. function rendom() {
  46. let index=Math.round(Math.random()*9);
  47. energy[index]=Math.round(Math.random()*100)
  48. chartRef.update()
  49. }
  50. </script>
  51. <Line bind:chart={chartRef} data={data}/>
展开查看全部

相关问题