失效原因就是在created()域调用时,子组件还未成功渲染,因此设置一个延缓时间即可,网上找的答案是

  <projectNode v-if="nodeVisable" ref="pNode"></projectNode>

   // created中调用:
    checkNode(index, row) {
      this.nodeVisable = true;
      // 调用子组件方法
      this.$refs.pNode.getNodeData(index, row);
    },

上面这种会报异常

原有的基础上,加个延缓即可

  <projectNode v-if="nodeVisable" ref="pNode"></projectNode>

   // created中调用:
    checkNode(index, row) {
      this.nodeVisable = true;
      // 调用子组件方法
      setTimeout(() => {
        this.$refs.pNode.getNodeData(index, row);
      }, 5);
    },

 

Logo

前往低代码交流专区

更多推荐