Vue.js Cannot read property '' of undefined

0

Cześć,
mam taki mały problem. Mam dwa komponenty
Item.vue i Comments.vue
Chodzi o wywołanie danych z Comments w Item a dokładnie
Item.vue

<comments-component ref="refCommentComponent" :resource_id="item.id" :resource_type="'MOVIE'"/>

ustawiłem ref na komponencie comments
i teraz przez kliknięcie próbuję wywołać

<q-btn round @click="$refs.refCommentComponent.isShow = true"> </q-btn>

w Comments.vue mam oczywiście ustawione isShow

data() {
    return {
      data: {},
      isShow: false
    }
  },

nie wiem o co chodzi ale przez chwilę działało a teraz mam błąd

Cannot read property 'isShow' of undefined

ktoś ma pomysł o co chodzi?

1

Może spróbuj w Comments w mounted dodać this.$root.$refs.A = this, a tym drugim powinno dać się wywołać tak this.$root.$refs.A.isShow.

0

Dziwne jest to że jeśli zrobię dodatkową metodę

showComments() {
      return this.$refs.refCommentComponent.isShow ^= true;
    }

działa ok a jeśli chcę to dodać w

@click="$refs.refCommentComponent.isShow ^= true" 

to już nie działa a nie chciałbym też do kilku klików robić osobne metody

0

Już wiem, w kodzie miałem v-if, zmieniłem na v-show i teraz jest ok

0

Chociaż nie, to nie to ale ma związek z tym problemem.
Kiedy zrobię console.log(this.$refs.refCommentComponent)
mam undefined
a komponentu używam

<comments-component ref="refCommentComponent" :resource_id="item.id" :resource_type="'MOVIE'"></comments-component>
0

Osobiście bym pewnie po prostu użył Vuex-a, ale domyślam się, że jeżeli przedstawione dane są jedynymi, które chcesz wywołać w inny komponencie, to nie chcesz takiego rozwiązania implementować. Rozumiem też, że comments i item nie mają relacji parent - child?

0

Nie, nie ma relacji parent-child

1 użytkowników online, w tym zalogowanych: 0, gości: 1