#vue.js
Вопрос:
Я пытаюсь получить доступ к содержимому даты, но безрезультатно. Что происходит:
Мое приложение:
el: "#app", data: { arrays: [], bestc: [], todos: [], }, beforeCreate(){ axios .get("https://api.com/result") .then((response) =gt; { for (var i = 0; i lt; response.data.length; i ) { this.arrays.push(response.data[i].dezenas); } }) .catch((error) =gt; { console.log(error); this.errored = true; }) .finally(() =gt; computaTudo(this.arrays)); function computaTudo(array) { var content = []; for (var j = 0; j lt; array.length; j ) { content = content.concat(array[j]); } return countItems(content); } function countItems(arr) { const countMap = Object.create(null); for (const element of arr) { // Basicamente, estamos dizendo: atribua à `countMap[element]` o valor // atual (ou zero, caso não existir) somado ao número 1. countMap[element] = (countMap[element] || 0) 1; } this.todos = Object.entries(countMap).map(([value, count]) =gt; ({ numero: value, quantidade: count, })); return ordeNar(); } function ordeNar() { let ordenadoPor = this.todos.slice(0); ordenadoPor.sort(function (a, b) { return b.quantidade - a.quantidade; }); return finished(ordenadoPor); } function finished(ord){ let localArr = []; localArr = ord.map(function (obj) { return obj.numero; }); this.bestc = localArr; this.bestc.push(); if (this.bestc.length gt; 0) { loader.hide(); this.loading = true; console.log(this.bestc) } } }
На консоли this.bestc возвращает именно то, что я хочу, но при попытке доступа через HTML:
lt;div class="lh-1"gt; lt;h1 class="h6 mb-0 text-white lh-1"gt;Númeroslt;/h1gt; {{ bestc }} lt;small v-for="item in bestc"gt; lt;span class="badge bg-light text-dark"gt;{{ item }}lt;/spangt;amp;nbsp; lt;/smallgt; lt;/divgt;
Он возвращается пустым. Я пробовал разные решения и не мог найти способ наполнить его контентом. Я не понимаю, почему на консоли это работает, а на данных-нет.
Комментарии:
1. Вы используете
this
обычную функцию: она не относится к самому компоненту Vue. Вместо этого используйте функции со стрелкамиthis
, чтобы сохранить лексику. В качестве альтернативы, вместо того, чтобы определять все эти функции в вашем цикле жизненного цикла beforeCreate, почему бы вместо этого не определить их как методы компонентов?2. Я не очень хорошо знаком с Vue, я изучаю его понемногу, основываясь на том, что я нахожу. Спасибо!
3. Работал с функциями стрелок! Спасибо!