感谢您在两个Vue单页组件方面的帮助。
“搜索栏”组件包含一个用于用户输入的对话框。这些用户输入在组件“ ResultList”中需要进一步使用。因此,我想使用Vue EventBus进行传输。
用户输入是具有两个属性的对象:
userInput: {
userName: '',
taskNr: ''
},
,并应通过EventBus转移到“ ResultList”:
emitUserInput: function () {
EventBus.$emit('emitUserInput', this.userInput)
}
“ ResultList”中的是一种侦听器方法,应该将对象存储在组件的data-Object中:
userInputListener: function () {
EventBus.$on('emitUserInput', setUser => {
this.userInput.userName = $userInput.userName
this.userInput.taskNr = $userInput.taskNr
})
}
不幸的是,“ ResultList”的userInput-object内部没有任何更改。其属性userName和taskNr保留为空字符串。
任何想法我都会很高兴。预先感谢!
更新
这是在“搜索栏”组件中调用“ emitUserInput()”的代码
<el-form-item>
<el-button @click='emitUserInput(), toggleInputForm = false'>Bestätigen</el-button>
</el-form-item>
这是“搜索栏”组件中的数据对象:
data () {
return {
userInput: {
userName: '',
taskNr: ''
}
}
答案 0 :(得分:0)
您在哪里叫userInputListener
?您实际上可以将EventBus.$on
放在您的mounted()
钩中,看看它是否有效:
mounted() {
EventBus.$on('emitUserInput', payload => {
this.userInput.userName = payload.userName
this.userInput.taskNr = payload.taskNr
})
}