Read the statement by Michael Teeuw here.
How can I update my chart?
-
@doridol the 1st time thru the chart doesn’t exist yet, right?
// gets the data for chart this.textDataRecived = payload; this.loaded = true; } // chart may NOT be drawn yet // getDom has not been called yet since data arrived if(this.myChart !== undefined ) console.log(this.myChart)
-
@sdetweil aaaaah!! I understood! I’ll try it
-
@sdetweil I tried it but nothing is printed in develop console window :anxious_face_with_sweat:
-
@doridol did u get an update for the chart? (another socketnotification?)
also, where do u define myChart?
should be after defaults
myChart: null,
-
@sdetweil I define myChart in getDom like this
getDom: function () { const wrapper = document.createElement("div"); this.ctx = document.createElement("canvas"); this.ctx.style.width = "700px"; this.ctx.style.height = '700px'; wrapper.appendChild(this.ctx) labels = [2,4,6,8] this.myChart = new Chart(this.ctx, { type: 'line', data: { labels: labels, datasets: [{ data: [1,2,3,4], backgroundColor: 'rgba(255,255,255,0.3)', borderColor: 'white', borderWidth: 2, fill: true, }] }, options: { title: { display: true, text: 'Air-Quality', }, scales: { xAxes: [{ gridLines: { color: 'rgba(255,255,255,0.2)', }, }], }, } }); return wrapper; } });
and I’ll only update myChart in socketNotificationReceived
-
@doridol that is USE, not really define
I don’t like side effects… create on 1st use… ugh.
also, you will UPDATE in notification, but need to CREATE in getdom, or somewhere
-
@sdetweil oh… it is very difficult to update chart… really thanks for your help I seem I have to study more…
-
@sdetweil I have really really last question I changed my socketNotificationReceived like this
socketNotificationReceived: function(notification, payload) { if (notification === "TEXT_RESULT") { this.textDataRecived = payload; this.loaded = true; } if(count < 2) { this.updateDom(); count = count + 1; } else { this.myChart.data.datasets.data = this.textDataRecived console.log(this.myChart.data.datasets.data) this.myChart.update(); } },
and console.log(this.myChart.data.datasets.data) successfully print this.textDataRecived but my chart is not updated in the screen why???
-
@doridol i do not know anything about the chart.update() method… I don’t use it.
-
@sdetweil okay thanks for you a lot of help:beaming_face_with_smiling_eyes: