Vue使用provide各种传值后inject获取undefined的问题

首先使用provide是为了方便孙子组件获取爷爷组件的数据

就比如下方想使用provide把table的refs分派给每个孙子组件

Vue使用provide各种传值后inject获取undefined的问题_第1张图片
但是provide是先于mounted执行的,导致dom还没有搭建完成就发送给了子组件,所以子组件inject后值为undefined

所以我想要不给一个响应式数据,这样在爷爷组件中的mounted对其进行赋值后孙子组件也能同步更新

Vue使用provide各种传值后inject获取undefined的问题_第2张图片

这样子组件就能正常获取它的值了

Vue使用provide各种传值后inject获取undefined的问题_第3张图片

不知道还有没有更好的解决方法,如果有请踢我一下! o( ̄▽ ̄)ブ

不如直接让爷爷组件传this

但是传递this后为undefined怎么办?

原来的写法:

  provide: {
    $examRouter: this,
  },

得改成函数的写法就好了:

  provide() {
    return {
      $examRouter: this,
    }
  },

你可能感兴趣的:(Vue,vue.js)