我正在做一个项目,我使用 electron-vue 并使用 bootstrap-vue 使应用程序看起来更好。经过大量调试,我发现更改链接到引导组件道具的数据属性(在父组件中)。它会给我错误消息,告诉我不要改变 props 值,并且它们是只读的。在我看来,代码可以工作并执行,但会在控制台中给我很多错误。当我说它似乎有效时,我的意思是 console.log 和 bootstrap 组件的视觉效果似乎都正确地更改了变量。
在编写了很多测试用例之后,我发现更改数据属性不会出错。但是,当更改链接到引导组件道具的数据属性时,它会。
显示这些错误消息出现位置的测试用例在下面的代码中:
<template>
<b-progress :max="maxNumberOfFiles" show-value>
<b-progress-bar :value="currentNumberOfErrorFiles"
:max="maxNumberOfFiles"
variant="danger"
show-value
/>
</b-progress>
</template>
export default {
data() {
maxNumberOfFiles: 1,
currentNumberOfErrorFiles: 0
},
methods {
test: function() {
currentNumberOfErrorFiles = 1;
}
}
}
上面的代码将导致3个错误:
- $attrs 是只读的
- $listeners 是只读的
- 避免直接改变 prop,因为只要父组件重新渲染,该值就会被覆盖。相反,使用基于道具值的数据或计算属性。道具被变异:“价值”
但是此代码产生零错误:
<template>
<progress :value="currentNumberOfErrorFiles"
:max="maxNumberOfFiles"
>
</progress>
</template>
export default {
data() {
maxNumberOfFiles: 1,
currentNumberOfErrorFiles: 0
},
methods {
test: function() {
currentNumberOfErrorFiles = 1;
}
}
}
我曾尝试使用 google 解决类似问题,并查看电子 vue 和 bootstrap-vue 的文档,但找不到任何对我有帮助的东西。有没有人遇到过同样的问题或有解决这些错误的方法?