亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

vue-star-rating 類型錯誤:無法讀取 listToStyles.js:26 處未定義的

vue-star-rating 類型錯誤:無法讀取 listToStyles.js:26 處未定義的

PHP
至尊寶的傳說 2023-05-12 14:33:40
在 Vue 中調用 getRating 函數時出現此錯誤。我在 laravel 中使用 Vue-star-rating 包。不明白是什么問題。 getRating(){                    var pathArray = location.pathname.split('/');                    var pid = pathArray[2];                    fetch(`/api/rating/${pid}`)                    .then(res => res.json())                    .then(res => {                        var mydata = res.data;                        this.totaluser = mydata.length;                        var sum = 0;                        for(var i=0; i < mydata.length; i++){                            sum += parseFloat(mydata[i]['rating']);                        }                         var avg = sum/mydata.length;                        this.totalrate = parseFloat(avg.toFixed(1));                        var bar1 = 0;                        var bar2 = 0;                        var bar3 = 0;                        var bar4 = 0;                        var bar5 = 0;                        for(var j = 0; j < mydata.length; j++){                            if(parseInt(mydata[j]['rating']) == '1'){                                bar1 += 1;                            }                            if(parseInt(mydata[j]['rating']) == '2'){                                bar2 += 1;                            }                            if(parseInt(mydata[j]['rating']) == '3'){                                bar3 += 1;                            }                            if(parseInt(mydata[j]['rating']) == '4'){                                bar4 += 1;                            }                            if(parseInt(mydata[j]['rating']) == '5'){                                bar5 += 1;                            }                        }類型錯誤:無法在 listToStyles.js:26 處讀取未定義的屬性“長度”希望大家多多指教!
查看完整描述

2 回答

?
溫溫醬

TA貢獻1752條經驗 獲得超4個贊

您所做的所有“長度”事情都在您獲得的 res.data 上,而且看起來是未定義的。嘗試制作控制臺日志并確保您的 api 為您提供了您想要制作的內容 res.data.length



查看完整回答
反對 回復 2023-05-12
?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

你myData是未定義的。您可以編寫更安全的代碼如下


getRating(){

                    var pathArray = location.pathname.split('/');

                    var pid = pathArray[2];

                    fetch(`/api/rating/${pid}`)

                    .then(res => res.json())

                    .then(res => {

                        var mydata = res.data || []; // sets myData to empty array if res.data is undefined

                        this.totaluser = mydata.length;


                        var sum = 0;

                        for(var i=0; i < mydata.length; i++){

                            sum += parseFloat(mydata[i]['rating']);

                        } 

                        var avg = sum/mydata.length; // this will produce error if mydata.length is zero

                        this.totalrate = parseFloat(avg.toFixed(1));

                        var bar1 = 0;

                        var bar2 = 0;

                        var bar3 = 0;

                        var bar4 = 0;

                        var bar5 = 0;

                        for(var j = 0; j < mydata.length; j++){

                            if(parseInt(mydata[j]['rating']) == '1'){

                                bar1 += 1;

                            }

                            if(parseInt(mydata[j]['rating']) == '2'){

                                bar2 += 1;

                            }

                            if(parseInt(mydata[j]['rating']) == '3'){

                                bar3 += 1;

                            }

                            if(parseInt(mydata[j]['rating']) == '4'){

                                bar4 += 1;

                            }

                            if(parseInt(mydata[j]['rating']) == '5'){

                                bar5 += 1;

                            }

                        }

                        $('.bar-1').css('width', bar1+'%');

                        $('.bar-2').css('width', bar2+'%');

                        $('.bar-3').css('width', bar3+'%');

                        $('.bar-4').css('width', bar4+'%');

                        $('.bar-5').css('width', bar5+'%');

                    })

                    .catch(err => {

                        console.log(err)


                    });

                },



查看完整回答
反對 回復 2023-05-12
  • 2 回答
  • 0 關注
  • 210 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號