vue-chartjs と Pinia を使用して保存されたリアクティブ データ
P粉946437474
2023-08-31 00:26:42
<p>Pinia を使用して vue-chartjs でデータを保存し、リアクティブ チャートを作成するのは苦手です。この例をガイドとして使用していますが、ストアの変化にグラフを反応させるのに苦労しています。 </p>
<p>リアクティブ フォームを使用して別のコンポーネントで Pinia ストア データを変更したところ、ストア データが変化することは確認できましたが、グラフは更新されませんでした。 </p>
<p>次のコンポーネントを使用してグラフをレンダリングしています: </p>
<pre class="brush:php;toolbar:false;"><スクリプトのセットアップ>
'pinia' から {storeToRefs } をインポートします
import { useStore} から '@/store/pinia-store-file';
輸入 {
ChartJSとしてのチャート、
カテゴリスケール、
リニアスケール、
ポイント要素、
線要素、
タイトル、
ツールチップ、
伝説
「chart.js」から;
'vue-chartjs' から { 行 } をインポートします。
ChartJS.register(
カテゴリスケール、
リニアスケール、
ポイント要素、
線要素、
タイトル、
ツールチップ、
伝説
);
const ストア = useStore();
conststoreData=storeToRefs(ストア);
const ラベル = [...Array(storeData.arr.value.length).keys()];
定数データ = {
ラベル: ラベル、
データセット: [
{
ラベル: 「データワン」、
背景色: '#f87979',
データ:storeData.arr.value
}
】
}
const オプション = {
応答性: true、
mainAspectRatio: false
}
</スクリプト>
<テンプレート>
<Line :data="data" :options="options" />
</template></pre>
<p>ストア変数を <code>ref()</code> でラップしようとしましたが、チャートを再レンダリングする必要があると思いますか?上記の例を Pinia ストアの状態に適用し、ストアが変更されたときに更新することに取り組んでいます。 </p>
応答にデータを設定していません。 を使用して計算してください
このコードで問題を解決できます:
リーリー