我要在父组件的computed中使用子组件的值,有什么办法吗?computed: { addButtonDisabled() { return this.$refs.queryBox.selectSportsType === _const.ALL_SELECTION }, 报错,Error in render: "TypeError: Cannot read property 'selectSportsType' of undefined"百度了下computed: { addButtonDisabled() { this.$nextTick(()=>{ return this.$refs.queryBox.selectSportsType === _const.ALL_SELECTION }) }, 这样才可以获取到可是这样又没办法用computed了,请问有什么解决办法吗,谢谢目前的写法,父组件声明要用的值addButtonDisabled传给子组件,子组件内修改,下部分为子组件代码computed: { addButtonDisabledProp(){ return this.selectSportsType === _const.ALL_SELECTION || this.selectParticipantType === _const.ALL_SELECTION }},watch:{ addButtonDisabledProp(){ this.$emit('update:addButtonDisabled', this.addButtonDisabledProp) }},
2 回答
holdtom
TA贡献1805条经验 获得超10个赞
在父组件的 data中声明你需要用到的值来存储子组件的那个值;
因为组件挂载顺序的问题 父组件data声明的时候子组件的data还没有初始化好;
所以你要在父组件mounted中通过this.$refs.xxxx.xxxx拿到这个值,并赋值给data中的值;
父级的computed 会根据这个data中的值重新计算
添加回答
举报
0/150
提交
取消