Свойство или метод «подписан» не определены в экземпляре, но на него ссылаются во время render.in Vue.js - PullRequest
2 голосов
/ 03 ноября 2019

в моих компонентах кнопки подписки vue, я упомянул каждый вычисленный реквизит и методы. В computed я упомянул свойство подписки: но все равно оно дает мне ошибку: -

"[Vue warn]: свойство или метод" подписка "не определены в экземпляре, но на них ссылаются во время рендеринга. Убедитесь, чтоэто свойство является реактивным либо в параметре данных, либо для компонентов на основе классов, путем инициализации свойства. См .: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties. "

Subscribe-buttom.js

Vue.component('subscribe-button', {
props: {
    profile: {
        type: Object,
        required: true,
        default: () => ({})
    },
    subscriptions: {
        type: Array,
        required: true,
        default: () => []
    }
},
computed: {
    subscribed: function() {
        if (!__auth() || this.profile.user_id == __auth().id) return false
        return !!this.subscriptions.find(subscription => subscription.user_id == __auth().id)
    }
},
methods: {

    toggleSubscription() {
        if (!__auth()) {
            alert('Please login to Subscribe')
        }
    }
}

 })

Это часть моего show.blade.php

<div class="text-center">
    <subscribe-button :profile="{{ $profile }}" :subscriptions="{{ $profile->subscriptions }}" inline-template>
     <button @click='toggleSubscription' class="btn btn-danger">
      @{{ subscribed ? 'Unsubscribe' : 'Subscribe' }} 7k
     </button>
    </subscribe-button>
  </div>

введите описание изображения здесь введите описание изображения здесь

1 Ответ

1 голос
/ 03 ноября 2019

Счетчик интуитивно понятен, но попробуйте просто сделать это и посмотреть, решит ли это вашу проблему. Добавьте смонтированный крюк и добавьте

mounted() {
    const test = this.subscribed;
}

. Или, может быть, эта ссылка поможет осветить путь https://forum.vuejs.org/t/unable-to-use-computed-property-in-component-template/69775

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...