#vue.js #vuejs2
#vue.js #vuejs2
Вопрос:
Мое событие эмиссии перестает работать, и я не могу понять почему.
У меня есть этот метод в дочернем компоненте
registerVote(){
this.voted = true;
this.voted_now = true;
console.log('vote')
this.$emit('voted', this.response.data.challenge_id);
}
Оно запускается после выполнения обещания, и я могу прочитать в консоли «голосование»
В родительском компоненте у меня есть
<imageVote :closed='image_set.closed' :images='sortedImages' :challenge_id="image_set.id" @voted="registerVote"></imageVote>
И затем мой метод
registerVote: function (value){
console.log('event')
this.$store.commit('addCookie', value)
var cookie_name = this.$store.state.challengeID "_master_click_votes"
this.$cookie.set(cookie_name, JSON.stringify( this.$store.state.cookies))
this.$eventHub.$emit('refreshScore');
}
Метод не запускается: почему?
Комментарии:
1. Можете ли вы предоставить рабочий пример, подобный jsFiddle или codePen? Вы видите какую-либо ошибку в консоли?
2. Я попробовал эмиссию и зарегистрировал ее в родительском компоненте, как в вашем коде. Все работает так, как ожидалось. Является ли ваш дочерний компонент непосредственно внутри родительского компонента?
3. @WebMan да… я пробую также с шиной событий, та же ошибка. Это тот же код, который я использовал в прошлом году, но теперь он перестал работать.
4. @RobertoPezzali вы упомянули, что после обещания выполняется этот метод.
this.$emit('voted', this.response.data.challenge_id);
Вы регистрировалисьthis.response.data
перед отправкой, просто чтобы убедиться, что есть данные? Может быть, нет данных и нетchallenge_id
и приложение вылетает.