试图从总线 vuejs 发出结果
Trying to emit result from bus vuejs
我正在尝试发出引号的结果数,其中我加一并将文本的结果从文本区域推送到数组。字符串文本成功推送到数组,但引号数始终为零。我已经用一种方法尝试过或分开了,但我总是得到相同的结果。
<template>
<div>
<p>Quotes</p>
<b-form-textarea
id="textarea-rows"
v-model="value"
placeholder="Enter something..."
rows="5"
></b-form-textarea>
<b-button variant="primary" @click='plusOneQuote(); addQuote();'>Add Quote</b-button>
</div>
</template>
<script>
import {EventBus} from '../main.js'
export default {
props: ['numberOfQuotes', 'quotes'],
data (){
return {
value: '',
}
},
methods: {
plusOneQuote() {
this.numberOfQuotes++;
EventBus.$emit('addedQuote', this.numberOfQuotes);
},
addQuote() {
this.quotes.push(this.value);
}
}
}
</script>
当我从 click 和方法中删除 addQuote 时,numberOfQuotes 变大了一个,我在另一个组件中显示它没有问题。
在 click 指令上调用单个方法是一种很好的做法,因此而不是:
<b-button variant="primary" @click='plusOneQuote(); addQuote();'>Add Quote</b-button>here
你可以实施
<b-button variant="primary" @click='updateQuotes'>Add Quote</b-button> here
和方法部分
methods: {
plusOneQuote() {
this.numberOfQuotes++;
EventBus.$emit('addedQuote', this.numberOfQuotes);
},
addQuote() {
this.quotes.push(this.value);
},
updateQuotes(){
this.plusOneQuote();
this.addQuote();
}
我以前遇到过这个问题,希望这个解决方案能有所帮助。
编辑:
抱歉,错过了一些上下文,因为你正在尝试推送到 this.quotes 这是一个道具,你不能直接改变它,你应该使用 getter 和 setter 来做它甚至更好,使用 v-model。引用文档:
避免直接修改 prop,因为只要父组件re-renders,该值就会被覆盖。相反,使用数据或根据道具的价值计算 属性。 Prop 被改变:“可见”(在组件中找到)
我正在尝试发出引号的结果数,其中我加一并将文本的结果从文本区域推送到数组。字符串文本成功推送到数组,但引号数始终为零。我已经用一种方法尝试过或分开了,但我总是得到相同的结果。
<template>
<div>
<p>Quotes</p>
<b-form-textarea
id="textarea-rows"
v-model="value"
placeholder="Enter something..."
rows="5"
></b-form-textarea>
<b-button variant="primary" @click='plusOneQuote(); addQuote();'>Add Quote</b-button>
</div>
</template>
<script>
import {EventBus} from '../main.js'
export default {
props: ['numberOfQuotes', 'quotes'],
data (){
return {
value: '',
}
},
methods: {
plusOneQuote() {
this.numberOfQuotes++;
EventBus.$emit('addedQuote', this.numberOfQuotes);
},
addQuote() {
this.quotes.push(this.value);
}
}
}
</script>
当我从 click 和方法中删除 addQuote 时,numberOfQuotes 变大了一个,我在另一个组件中显示它没有问题。
在 click 指令上调用单个方法是一种很好的做法,因此而不是:
<b-button variant="primary" @click='plusOneQuote(); addQuote();'>Add Quote</b-button>here
你可以实施
<b-button variant="primary" @click='updateQuotes'>Add Quote</b-button> here
和方法部分
methods: {
plusOneQuote() {
this.numberOfQuotes++;
EventBus.$emit('addedQuote', this.numberOfQuotes);
},
addQuote() {
this.quotes.push(this.value);
},
updateQuotes(){
this.plusOneQuote();
this.addQuote();
}
我以前遇到过这个问题,希望这个解决方案能有所帮助。
编辑:
抱歉,错过了一些上下文,因为你正在尝试推送到 this.quotes 这是一个道具,你不能直接改变它,你应该使用 getter 和 setter 来做它甚至更好,使用 v-model。引用文档:
避免直接修改 prop,因为只要父组件re-renders,该值就会被覆盖。相反,使用数据或根据道具的价值计算 属性。 Prop 被改变:“可见”(在组件中找到)