vue.js - 请告诉我如何消除每次更改道具时被覆盖的错误
问题描述
即使您查看错误,您也不知道是什么原因造成的。
在更改屏幕大小或单击时发生。
它说变量已被重写,但我不知道该怎么办。
我在检查中找不到任何原因或解决方案。
如何解决?
错误信息:
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: "leftDrawer"
主.vue:
<template>
<v-app>
<!-- ヘッダー -->
<Header
v-bind:leftDrawer="leftDrawer"
v-on:leftChange="leftChange"
></Header>
<LeftSidebar
v-bind:leftDrawer="leftDrawer"
v-on:leftChange="leftChange"
></LeftSidebar>
</v-app>
</template>
<script>
import Header from "./Header.vue";
import LeftSidebar from "./LeftSidebar.vue";
export default {
data() {
return {
leftDrawer: false,
}
},
components:{
'Header' : Header,
'LeftSidebar' : LeftSidebar,
},
methods: {
leftChange() {
this.leftDrawer = !this.leftDrawer;
},
}
}
</script>
=======
Header.vue:
<template>
<v-app-bar color="primary" dark app clipped-left clipped-right>
<v-app-bar-nav-icon @click.stop="leftChange"></v-app-bar-nav-icon>
</v-app-bar>
</template>
<script>
export default {
methods: {
leftChange: function(){
this.$emit('leftChange');
},
}
}
</script>
=========== LeftSidebar.vue:
<template>
<v-navigation-drawer app v-model="leftDrawer" clipped class="yellow">
</v-navigation-drawer>
</template>
<script>
export default {
props: {
leftDrawer: Boolean
}
}
</script>
解决方案
(我删除了与问题无关的所有道具/属性)
<v-navigation-drawer v-model="leftDrawer">
这是在改变leftDrawer
道具。阅读文档以了解 v-model 的实际作用。
试试这个,但我怀疑它会起作用。这取决于如何v-navigation-drawer
实现 v-model。同样,这是在文档“自定义组件上的 v-model”中。
<v-navigation-drawer :value="leftDrawer" @input="$emit('leftChange')">
即使您查看错误,您也不知道是什么原因造成的。
取决于你的vue经验。
编辑:我的回答有误。
@input="$emit('input', $event)"
应该是@input="$emit('leftChange')"
。
因为父组件正在main.vue
监听v-on:leftChange="leftChange"
.LeftSidebar
推荐阅读
- vue.js - Vue.draggable:为什么不能将子项拖到另一个项上?
- sql - oracle sql中特定条件下的用户输入
- javascript - 如何将选项从 HTML 推送到 JS 中的对象数组?
- ansible - 通过 ansible 报告运行 Tomcat `startup.sh` Tomcat 已启动但未启动
- c# - 如何复制列表
到带有for循环的多维数组? - java - 无法加载或实例化 TagLibraryValidator
- php - 如何在 Laravel 中使用多个数据库并随用户更改数据库连接?
- java - Mysql 中的 Oracle TO_DATE 函数并行,应该同时支持 DB oracle 和 mysql
- powershell - 从字符串中删除最后两个单词
- python - 使用python在字典中使用具有某些条件的值查找键?