Vue.js Vue js更改外部组件的道具

Vue.js Vue js更改外部组件的道具,vue.js,vuejs2,Vue.js,Vuejs2,我使用library element.io,当选择值为“a”时,我想将输入的“disabled”prop更改为true 选择: <el-select v-model="selected_devise" slot="append" placeholder="Devise"> <el-option v-for="item in devises" :key="item.value" :label="item.label"

我使用library element.io,当选择值为“a”时,我想将输入的“disabled”prop更改为true

选择:

<el-select v-model="selected_devise" slot="append" placeholder="Devise">
    <el-option
        v-for="item in devises"
        :key="item.value"
        :label="item.label"
        :value="item.value">
    </el-option>
</el-select>
当我选择“b”时,我想将输入设置为禁用,为此,我必须编辑道具:

<el-input type="text" ref="montant" v-model="montant" placeholder="Saisissez le montant"></el-input>

当我尝试使用此选项时。$refs.montant。$props.disabled=true;我得到:

避免直接改变道具,因为每当父组件重新渲染时,该值将被覆盖。相反,使用基于道具值的数据或计算属性。道具变异:“禁用”


谢谢你的帮助

大概是

<el-input 
   type="text" 
   ref="montant" 
   v-model="montant" 
   placeholder="Saisissez le montant" 
   :disabled="selected_devise=='b'"
></el-input>


(假设el input和el select是同一组件的子组件)

不应直接在子组件中变异道具。相反,您应该使用
this.$emit
在子组件中发出一个自定义事件,并让父组件侦听该事件并修改道具。好的,我看到了“想法”,能告诉我细节吗?因为我使用elementUI(外部库组件)
<el-input 
   type="text" 
   ref="montant" 
   v-model="montant" 
   placeholder="Saisissez le montant" 
   :disabled="selected_devise=='b'"
></el-input>