Maison  >  Questions et réponses  >  le corps du texte

Impossible de lire la propriété null (lire « conversion »). Qu'est-ce que ça veut dire?

J'ai créé le graphique en utilisant les données dynamiques d'axios via la bibliothèque Chartjs. Mais lorsque j'actualise la charte du navigateur, d'abord il n'y a rien de disponible comme ceci :

Si je modifie la taille de la fenêtre du navigateur, tous les graphiques s'affichent :

Erreur depuis la console :

Uncaught TypeError: Cannot read properties of null (reading 'transition')
    at Chart.transition (Chart.js?473e:9865:1)
    at Chart.draw (Chart.js?473e:9827:1)
    at Chart.render (Chart.js?473e:9799:1)
    at Object.callback (Chart.js?473e:2208:1)
    at Object.advance (Chart.js?473e:3544:1)
    at Object.startDigest (Chart.js?473e:3517:1)
    at eval (Chart.js?473e:3506:1)

Je ne sais pas pourquoi cela se produit et je ne sais pas quoi faire. Il semble que le navigateur essaie d'abord de créer le graphique (mais n'a pas encore reçu les données). L'ensemble du processus de calcul prend environ 580 ms.

Ce MainChart.vue est utilisé pour construire le graphique :

<template>
  <div>
    <canvas id="main-chart" height="400"></canvas>
  </div>
</template>

<script>
import Chart from 'chart.js'

export default {
  name: 'MainChart',
  props: ['chartData'],
  mounted() {
    const ctx = document.getElementById('main-chart');
    new Chart(ctx, this.chartData);
  }
}
</script>

Cette page publique Analytics-test.vue. J'ai sauté toutes les méthodes.

<template>
  <div> Прибыль/посещаемость <div class="small">
      <MainChart :chart-data="datacollection" />
    </div>
  </div>
</template>

<script>
import MainChart from '../MainChart.vue'
export default {
  components: { MainChart },
  
  data: () => ({
    flagStartDate: false,
    chartData: null,
    labels: [],
    datasets: {},
    draftData: null,
    data: [],
    datacollection: { type: 'line', },
    clubsId: ['5c3c5e12ba86198828baa4a7', '5c3c5e20ba86198828baa4c5', '60353d6edbb58a135bf41856', '61e9995d4ec0f29dc8447f81', '61e999fc4ec0f29dc844835e'],
      }),
  methods: {
...some a lot of code..},

 async mounted() {
    await this.loadIncomings(this.clubsId),
      await this.loadAvgIncomings(this.clubsId),
      await this.loadAvgPayments(this.clubsId),
      await this.loadAvgSchedule(this.clubsId),
      await this.loadTrainings(this.clubsId)

  },

</script>
Il y a 19 fonctions dans

methods, j'ai décidé de ne pas les saisir ici.

P粉207483087P粉207483087283 Il y a quelques jours425

répondre à tous(1)je répondrai

  • P粉311464935

    P粉3114649352024-01-11 12:37:43

    Cette erreur semble être similaire à celle décrite dans ce problème GitHub : https://github.com/chartjs/Chart.js/issues/5149 Il semble que cela puisse être dû au chargement immédiat des données par le graphique, mais à ce sujet Il y a quelques solutions dans les commentaires de la question.

    répondre
    0
  • Annulerrépondre