我遇到了一个事件被触发但父母似乎听不到的问题。我已经花了3个多小时试图找出问题,但无济于事。 这是父组件。
Thread.vue
<script>
import Tagging from '../components/Tagging.vue';
export default {
props: ['thread'],
components: {Tagging},
data () {
return {
repliesCount: this.thread.replies_count,
locked: this.thread.locked,
title: this.thread.title,
body: this.thread.body,
selectedTags: this.thread.selected_tags,
form: {},
editing: false
};
},
methods: {
tagsChanged(value){ <---- this handler is never called
console.log("received")
}
}
}
</script>
子组件
Tagging.vue
<!-- Vue component -->
<template>
<div>
<label class="typo__label">Tagging:</label>
<multiselect
v-model="value"
tag-placeholder="Add this as new tag"
placeholder="Search or add a tag"
label="name"
track-by="code"
:options="options"
:multiple="true"
:taggable="true"
@tag="addTag"
@input="emitToParent" //this event handler emits an event to parent
></multiselect>
</div>
</template>
<script>
import Multiselect from "vue-multiselect";
export default {
props: ["tags","previousTags","repliesCount"],
components: {
Multiselect
},
data() {
return {
value: this.previousTags,
options: this.tags,
};
},
methods: {
addTag(newTag) {
const tag = {
name: newTag,
code: newTag.substring(0, 2) + Math.floor(Math.random() * 10000000)
};
this.options.push(tag);
this.previousTags.push(tag);
this.form.selected_tags.push(tag)
},
emitToParent (event) {
this.$emit('childToParent', this.value)//this event is being fired(verified on vue developer tools
}
}
};
</script>
在我的HTML上是模板
<tagging @childToParent="tagsChanged" :tags="some json" :previous-tags="some json"></tagging>
我尝试更改
@childToParent="tagsChanged"
到
v-on:childToParent="tagsChanged"
但这不起作用。
我想念什么?
谢谢
答案 0 :(得分:0)
在表面上MenuItem menuItem = navigationView.getMenu().findItem( R.id.MENU_ITEM_ID );
TextView textView = (TextView) menuItem.getActionView();
//Set your text here
textView.setText(YOUR_TEXT);
部分看起来还不错。
首先,您可以在$emit
上添加console.log()
来确保触发此方法吗。
第二,确保没有任何错误,请检查控制台。
第三,这是不正确的语法:emitToParent
。这会引发错误。