Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-

在这里插入图片描述

[Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop’s value. Prop being mutated: “sidebarDialogVisible”

  • 警告原因,我不应该直接在里面修改props属性的值。可能会被父类覆盖。

  • 解决方案。

  • 新建data sidebarDialogVisible,原来的prop属性我改了名字sidebarDialogVisibleProp,这样我html代码就不动了。

 ... 省略 ...
   props: {
    sidebarDialogVisibleProp: {
      type: Boolean,
      default: false,
    },
  },
  data() {
    return {
      sidebarDialogVisible: this.sidebarDialogVisibleProp,
    };
  },
  ... 省略 ...
  • 监听变化
  watch:{
    sidebarDialogVisibleProp(newVal) {
      this.sidebarDialogVisible = newVal
    },
  },
  • 父类使用
 <Sidebar :sidebarDialogVisibleProp="sidebarSwitch"></Sidebar>

posted on 2022-12-09 08:59  愤怒的苹果ext  阅读(1378)  评论(0编辑  收藏  举报

导航