• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed JS VUE - Renderuje element z tablicy a potem wyświetla błąd, że tablica nie istnieje

Object Storage Arubacloud
0 głosów
315 wizyt
pytanie zadane 2 czerwca 2019 w JavaScript przez Greeenone Pasjonat (16,100 p.)
zamknięte 2 czerwca 2019 przez Greeenone

Hej,

Mam taki dziwny problem. Mój komponent Vue wyświetla mi wybrany element z tablicy a zaraz po tym wyświetla błąd, że dany element nie jest zdefiniowany.

Template:

  <div v-if="settings">
    <span>{{ settings[0].setting_name }}</span>
  </div>

Skrypt

var axios = require("axios");
    export default {

        data(){

            return {

                setting:{
                    setting_name: ''
                },
                settings: [],
                uri: 'http://127.0.0.1:8000/api/general',
            }

        },

        methods: {
            loadSettings(){
                axios.get(this.uri).then(response=>{

                    this.settings = response.data.settings;

                });

            }

        },

        mounted() {
            this.loadSettings();
            console.log("component mounted");
        }
    }
[Vue warn]: Error in render: "TypeError: _vm.settings[0] is undefined"

found in

---> <GeneralComponent> at resources/js/components/GeneralComponent.vue
       <General> at resources/js/views/General.vue
         <App> at resources/js/views/App.vue
           <Root>


TypeError: "_vm.settings[0] is undefined"

Próbowałem też wyświetlić to z list v-for(Settings in settin) ale też nie pomogło :F

 

Ktoś wie jak temu zaradzić? Siedzę już na tym od dwóch godzin :F

komentarz zamknięcia: Rozwiązano !

3 odpowiedzi

+1 głos
odpowiedź 2 czerwca 2019 przez niezalogowany
wybrane 2 czerwca 2019 przez Greeenone
 
Najlepsza
Zakomentuj cały mounted i wtedy spróbuj rozwiązać błąd
+1 głos
odpowiedź 2 czerwca 2019 przez AdamSiekierski Dyskutant (8,340 p.)
Masz to na GitHubie? Sprawdziłbym na innej maszynie, bo dla mnie ten kod wygląda jak najbardziej poprawnie.
komentarz 2 czerwca 2019 przez Greeenone Pasjonat (16,100 p.)

Hej

Kod działa. Pokazuje mi wybrany element z listy ale nie rozumiem czemu pojawia się właśnie owy błąd. Wydaje mi się, że może to być albo jakiś bug albo powodowane przez inny błąd

TypeError: parsed is undefinedapp.js:1232:7

 

Załączam więcej plików. Maszyna raczej odpada ponieważ strona jest cała "rozkopana". Na dodatek jeszcze do tego dochodzi laravel, ustawienie wszystko itd.

komentarz 2 czerwca 2019 przez AdamSiekierski Dyskutant (8,340 p.)
To raczej jakiś błąd, pochodzący z głębi node_modules :). Masz wszystkie biblioteki i vue-cli aktualne? Może trzeba je uaktualnić?
komentarz 2 czerwca 2019 przez Greeenone Pasjonat (16,100 p.)

Błąd pojawił się w momencie dodania axiosa. Wcześnie miałem błąd że axios nie jest zdefiniowany. Po dodaniu 

  var axios = require("axios");

Zaczęło działać (Wyświetlać i pobierać dane z bazdy) ale pojawił się przy tym owym problem. 

Spróbuję go rozwiązać tak jak pisał argeento i dam znać czy pomogło :)

komentarz 2 czerwca 2019 przez Greeenone Pasjonat (16,100 p.)
Naprawiłem poprzedni błąd i nadal mam ten sam błąd z settings
komentarz 2 czerwca 2019 przez Greeenone Pasjonat (16,100 p.)

Zamieszam screena 

0 głosów
odpowiedź 2 czerwca 2019 przez Greeenone Pasjonat (16,100 p.)
Udało się rozwiązać problem

Rozwiązanie problemu:

 

I think that your array is populated after the object is accessed in your dom, so you can try it like this:

{{ items[4] && items[4].name }}
komentarz 2 czerwca 2019 przez niezalogowany

Twój problem polegał na tym, że

v-if="settings"

pusta tablica jest rzutowana na true.

Wystarczy dopisać 

v-if="settings.length > 0"

albo samo

v-if="settings.length"
komentarz 2 czerwca 2019 przez Greeenone Pasjonat (16,100 p.)
Dzięki ! Dobrze wiedzieć co go powodowało. Nie mogłem dać najlepszej odpowiedzi tutaj jako, że to komentarz więc dałem ciut wyżej :)

Podobne pytania

0 głosów
1 odpowiedź 79 wizyt
pytanie zadane 6 czerwca 2019 w JavaScript przez ShiroUmizake Nałogowiec (46,300 p.)
0 głosów
0 odpowiedzi 123 wizyt
pytanie zadane 23 kwietnia 2019 w JavaScript przez mi-20 Stary wyjadacz (13,190 p.)
0 głosów
0 odpowiedzi 155 wizyt
pytanie zadane 15 lipca 2018 w JavaScript przez mi-20 Stary wyjadacz (13,190 p.)

92,573 zapytań

141,423 odpowiedzi

319,648 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...