Mit vue-chartjs und Pinia gespeicherte reaktive Daten
P粉946437474
2023-08-31 00:26:42
<p>Ich bin nicht gut darin, Pinia zum Speichern von Daten mit vue-chartjs zu verwenden, um reaktive Diagramme zu erstellen. Ich verwende dieses Beispiel als Leitfaden, habe aber Schwierigkeiten, das Diagramm auf Änderungen im Geschäft reagieren zu lassen. </p>
<p>Ich habe die Pinia-Geschäftsdaten in einer anderen Komponente mithilfe reaktiver Formulare geändert und konnte sehen, dass sich die Geschäftsdaten änderten, aber das Diagramm wurde nicht aktualisiert. </p>
<p>Ich rendere das Diagramm mit der folgenden Komponente: </p>
<pre class="brush:php;toolbar:false;"><script setup>
{storeToRefs} aus 'pinia' importieren
import { useStore} aus '@/store/pinia-store-file';
importieren {
Diagramm als ChartJS,
KategorieSkala,
Lineare Skalierung,
PointElement,
Linienelement,
Titel,
Tooltip,
Legende
} von 'chart.js';
import { Line } from 'vue-chartjs';
ChartJS.register(
KategorieSkala,
Lineare Skalierung,
PointElement,
Linienelement,
Titel,
Tooltip,
Legende
);
const store = useStore();
const storeData= storeToRefs(store);
const labels = [...Array(storeData.arr.value.length).keys()];
const data = {
Etiketten: Etiketten,
Datensätze: [
{
Etikett: „Data One“,
Hintergrundfarbe: '#f87979',
Daten: storeData.arr.value
}
]
}
const-Optionen = {
reaktionsfähig: wahr,
keepAspectRatio: false
}
</script>
<Vorlage>
<Zeile :data="data" :options="options"
</template></pre>
<p>Ich habe versucht, die Speichervariable in <code>ref()</code> einzuschließen, aber ich denke, ich muss das Diagramm neu rendern? Ich arbeite daran, das obige Beispiel auf den Pinia-Store-Status anzuwenden und es zu aktualisieren, wenn sich der Store ändert. </p>
您没有将数据设置为响应。请使用计算
这段代码可以解决问题: