【问题标题】:Vue prop initialization/mutatingVue 道具初始化/变异
【发布时间】:2019-05-03 16:36:51
【问题描述】:

我有以下代码:

export default class LayoutComponent extends Vue {  
    @Prop() whiteBg: boolean;   
    ...
}

但是当我编译它时,我得到:

属性 'whiteBg' 没有初始化器,也没有在构造函数中明确赋值

所以我尝试通过以下方式修复它:

export default class LayoutComponent extends Vue {  
    @Prop() whiteBg: boolean = true;    
    ...
}

但是在 chrome 控制台中我得到错误:

避免直接修改 prop,因为每当父组件重新渲染时,该值都会被覆盖

并在使用它的父组件中设置“忽略”whiteBg 值。

问题:怎么办?

【问题讨论】:

    标签: typescript vuejs2 vue-component


    【解决方案1】:

    使用以下代码

    export default class LayoutComponent extends Vue {  
        @Prop() whiteBg!: boolean;      
        ...
    }
    

    【讨论】:

      【解决方案2】:

      或者使用下面的

      export default class LayoutComponent extends Vue {
          @Prop({ default: true }) whiteBg: boolean;
          ...
      }
      

      https://github.com/kaorun343/vue-property-decorator

      【讨论】:

        猜你喜欢
        • 2021-06-04
        • 2020-11-20
        • 2018-08-31
        • 2019-02-27
        • 2018-05-01
        • 2019-05-10
        • 1970-01-01
        • 2020-08-06
        相关资源
        最近更新 更多