我要在父组件的computed中使用子组件的值,有什么办法吗?或者父组件使用子组件的

我要在父组件的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)

  }

},


慕运维8079593
浏览 378回答 2
2回答

holdtom

在父组件的 data中声明你需要用到的值来存储子组件的那个值;因为组件挂载顺序的问题 父组件data声明的时候子组件的data还没有初始化好;所以你要在父组件mounted中通过this.$refs.xxxx.xxxx拿到这个值,并赋值给data中的值;父级的computed 会根据这个data中的值重新计算
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript