首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以用数据中的设置动态地更改子组件实例中父函数的名称吗?

可以用数据中的设置动态地更改子组件实例中父函数的名称吗?
EN

Stack Overflow用户
提问于 2021-09-25 08:58:50
回答 1查看 291关注 0票数 2

初学者寻求帮助。非常感谢。

可以用数据中的设置动态地更改子组件实例中父函数的名称吗?

它的工作原理很好:

但是我需要这样做:,Vue给了我错误.

这是我的密码:

代码语言:javascript
复制
<div id="root">
    <my-component btntext="TEXT" @emitfn="emitname"></my-component>
</div>

<script>
Vue.component('myComponent', {
    props: ['btntext'],
    template: '<button @click="childFN">{{btntext}}</button>',
    methods: {
        childFN: function(){
            this.$emit("emitfn");
        }
    },
    data: function(){
        return {
            emitname: 'fn1'
        }
    }
});

var vm = new Vue({
    el: '#root',
    methods: {
        fn1: function(){
            alert('fn1');
        },
        fn2: function(){
            alert('fn2');
        }
    }
});
</script>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-25 09:10:31

您可以使用this.$options.methods['methodName']找到一种方法。

在您的情况下,您可以使用以下内容:

父组件

代码语言:javascript
复制
<my-component btntext="TEXT" @emitfn="emitfn"></my-component>
代码语言:javascript
复制
methods: {
   fn1: function(){
      alert('fn1');
   },
   fn2: function(){
      alert('fn2');
   },
   emitfn(emitname) {
      this.$options.methods[emitname]();
   },
}

子组件

代码语言:javascript
复制
methods: {
   childFN: function(){
      this.$emit("emitfn", this.emitname);
   }
},
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69324634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档