代码之家  ›  专栏  ›  技术社区  ›  Reynicke

ES6属性修饰符@Prop()修饰符不工作

  •  1
  • Reynicke  · 技术社区  · 8 年前

    我有以下Vue typescript组件类:

    import { Component, Prop, Vue } from 'vue-property-decorator';
    import ChildComp from './ChildComp';
    
    console.log(Prop);
    
    @Component({
      template: `
            <div>
                <ChildComp></ChildComp>
            </div>
        `,
      props: {
        state: String,
      },
      components: {
        ChildComp: ChildComp,
      },
    })
    export default class MissionComp extends Vue {
      @Prop() test: string;
    
      mounted() {
        console.log(this.state, this.test);
      }
    }
    

    我宣布2个道具, state 通过@组件装饰器(vue类组件)和 test 通过@Prop decorator(vue属性decorator)。只有 状态 作品@Prop decorator不会向Vue添加道具,但不会引发任何错误。

    这个 console.log(Prop); 记录Prop函数,以便加载和找到包,但似乎从未执行过。应用程序从不在断点处停止。

    我使用Webpack和babel loader进行传输。该错误可能是生成过程中的某个地方发生的吗?

    1 回复  |  直到 8 年前
        1
  •  0
  •   Reynicke    8 年前

    巴贝尔提供了这个问题的解决方案。Babel插件 @babel/plugin-proposal-decorators 目前,类和函数的装饰器是透明的。要传输类属性装饰器,您必须使用另一个插件: transform-decorators-legacy

    推荐文章