vue 父组件调用子组件方法出现的问题

发布于 2022-09-06 11:00:11 字数 1153 浏览 15 评论 0

在子组件中定义了一个方法,现在在父组件中调用会出现一些问题,求各路高手帮助
部分代码如下:

子组件中定义的方法:

methods:{
      getUEContent: function(){
       return this.editor.getContent();
      },
      setUEContent: function(something){
       this.editor.setContent(something);
      },
    }

父组件中先定义了一个对话框:

    <el-dialog title="新增菜单" size="small" v-model="addFormVisible2" :close-on-click-modal="false">
      <div>
        <el-button size="primary" type="info" icon="plus" @click="getContent2">获取内容</el-button>
        <NEditor :config=config2 ref="neditor"></NEditor>
      </div>
    </el-dialog>

默认不显示,addFormVisible2 = false;

然后设置一个按钮:

<el-button type="primary" @click.native="editItem">打开</el-button>

点击显示对话框:

    editItem: function(){
      this.addFormVisible2 = true;
      this.$refs.neditor.setUEContent("这里是测试语句");
    },

测试会出现如下错误:
图片描述

初学vue,求高手们指导

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

月隐月明月朦胧 2022-09-13 11:00:11

已经解决了。。只要在子组件定义的方法里加上this.$nextTick就行了,异步执行的原因,子组件还没渲染完就调用了方法就会这样

江湖正好 2022-09-13 11:00:11
 请问这里setUEContent: function(something){
   this.editor.setContent(something);
  },中editor是哪里定义的
鸢与 2022-09-13 11:00:11

调用methods中的方法,直接使用 this.setContent,并且确保 setContent 方法在这个methods中定义过。 如果这个方法是组件库的方法,那就看好文档,根据文档来写

死开点丶别碍眼 2022-09-13 11:00:11

父组件不能直接调用子组件方法···
vue按照父子组件通信的方式
父组件可以传一个控制参数到子组件 子组件监听这个props 来执行方法 就可以了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文