这是我的搜索组件,但它引发了“查询”道具错误的意外突变,我尝试了这种方式,但仍然收到错误。
这是视图字符,它使用组件搜索并传递查询数据
![]()
Enter 4 characters
Sorry, dont have any result
这些是我遇到的错误
错误“query”属性 vue/no-mutating-props 发生意外突变
错误“query”属性 vue/no-mutating-props 发生意外突变
非常感谢您的帮助
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
您将
input中的v-model设置为query.name,这意味着query当您更改输入值时,它将发生变化。由于query是一个 prop,因此您不能执行此操作。除了@Ian回答之外,要修复此警告,一种解决方案是使用
get创建一个compulated属性,其值为queryprop 和set带有emit事件到父组件,以更新父组件的查询 prop,并且在html中,您可以使用 计算的值而不是prop值<template> <div class="searchbar"> <input type="text" v-model="compQuery.name" // this is the error class="input" placeholder="Search" /> <div v-if="query.name.length > 3"> <select v-model="compQuery.status" class="select"> // This is the error <option value="alive">Alive</option> <option value="dead">Dead</option> <option value="unknown">Unknown</option> </select> </div> </div> </template> <script> export default { props: { query: String }, computed: { compQuery: { get () { return this.query }, set (value) { this.$emit('update:query', value) }, }, }, }; </script>并且在该组件的父组件中,您可以将
prop传递为v-model:prop="prop"例如