从昨天开始,我一直在努力创建一个带有参数的 Vue mixin,我得到了一个 [Vue warn]: Failed to mount component: template or render function not defined。这是我的 JS 文件,包括 mixin:
export default (dataObject) => ({
data() {
return {
inputValue: ''
}
},
methods: {
updateValue(newValue) {
this.inputValue = newValue
}
},
mounted() {
this.$bus.$on('value-changed', this.updateValue)
},
beforeDestroy() {
this.$bus.$off('value-changed');
},
computed: {
filteredData() {
if (this.inputValue !== '') {
let newData = Object.keys(dataObject)
.filter(key => key.includes(this.inputValue))
.reduce(
(newData, current) => ((newData[current] = dataObject[current]), newData), {}
)
return newData
}
else return dataObject
}
}
})
这是我的 Vue 组件:
import searchLogic from '../logic/searchLogic.js'
import { mapState } from 'vuex'
export default {
computed: {
...mapState(['champions']),
},
mixins: [searchLogic(this.champions)]
}
导入此文件有效,因为当我尝试导入没有参数的普通 mixin 时,它可以正常工作。我也尝试过champions
,"champions"
而不是this.champions
但似乎没有工作。mixin有问题吗?我读到可以返回一个函数,该函数返回一个对象以在创建 mixins 时使用参数。