Vue子组件如何修改父组件传来的props值而不报错?
- 内容介绍
- 文章标签
- 相关推荐
本文共计279个文字,预计阅读时间需要2分钟。
在Vue中,不建议直接在子组件中修改从父组件传递下来的props值。如果尝试这样做,会收到警告:
plaintext[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 to achieve the desired effect.
这是因为props是只读的,任何对props的直接修改都会在父组件重新渲染时被覆盖。为了正确处理这种情况,你应该在子组件中使用data或computed属性来存储需要修改的值。
vue不推荐直接在子组件中修改父组件传来的props的值,会报错
[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: "result" (found in component )
<input v-model="currentSearch" type="text" class="input-search" @keydown.enter="doSearch">
export default { name:"round-search-bar", props:['search'], //父组件传来的值 data(){ return { currentSearch: this.search //通过data, 定义新变量currentSearch, 这样currentSearch的值变更时,不会影响父组件传来的search的值 } }, methods: { doSearch(){ Util.searchAPI(this.$router,this.currentSearch) } }, }
以上这篇解决vue 子组件修改父组件传来的props值报错问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易盾网络。
本文共计279个文字,预计阅读时间需要2分钟。
在Vue中,不建议直接在子组件中修改从父组件传递下来的props值。如果尝试这样做,会收到警告:
plaintext[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 to achieve the desired effect.
这是因为props是只读的,任何对props的直接修改都会在父组件重新渲染时被覆盖。为了正确处理这种情况,你应该在子组件中使用data或computed属性来存储需要修改的值。
vue不推荐直接在子组件中修改父组件传来的props的值,会报错
[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: "result" (found in component )
<input v-model="currentSearch" type="text" class="input-search" @keydown.enter="doSearch">
export default { name:"round-search-bar", props:['search'], //父组件传来的值 data(){ return { currentSearch: this.search //通过data, 定义新变量currentSearch, 这样currentSearch的值变更时,不会影响父组件传来的search的值 } }, methods: { doSearch(){ Util.searchAPI(this.$router,this.currentSearch) } }, }
以上这篇解决vue 子组件修改父组件传来的props值报错问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易盾网络。

