gpt4 book ai didi

javascript - Vue.js - 绑定(bind)到组件的 Prop 未显示正确的结果

转载 作者:行者123 更新时间:2023-12-03 06:48:10 25 4
gpt4 key购买 nike

我的 Vue.js 应用程序中有这个 SwitchButton 组件,它有一个自定义事件“切换”。单击(切换)按钮时,切换事件将 isEnabled 设置为 false 或 true。没有问题,但是当我将父组件中的 isEnabled 绑定(bind)到 SwitchButton 子组件以设置其初始值时,它似乎不起作用。

父组件中使用的代码(将 isEnabled true 作为初始值)

<SwitchButton v-model="distSwitch" :isEnabled="true">
<label slot="left">{{ $t('general.dealer') }}</label>
<label slot="right">{{ $t('general.wholesale') }}</label>
</SwitchButton>

开关按钮组件:
<template>
<div class="switch-button-control">
<div class="switch-button-label">
<slot name="left"></slot>
</div>
<div class="switch-button" :class="{'enabled': isEnabled}" @click="toggle">
<div class="button"></div>
</div>
<div class="switch-button-label">
<slot name="right"></slot>
</div>
</div>
</template>

<script>
export default {
name: 'SwitchButton',
model: {
prop: 'isEnabled',
event: 'toggle'
},
props: {
isEnabled: {
type: Boolean,
required: true
}
},
methods: {
toggle() {
this.$emit("toggle", !this.isEnabled);
}
},
created() {
/*eslint-disable no-console*/
console.log('isEnabled', this.isEnabled)
}
}
</script>

我希望创建的钩子(Hook)中的 console.log 输出“isEnabled > true”,但它输出“false”而不是

我在这里想念什么?

最佳答案

由于属性的值 isEnabled由硬编码 true 设置,从子组件更改它是行不通的。

在父组件中初始化数据变量并设置为属性可以在这里提供帮助。

模板:

<SwitchButton v-model="distSwitch" :isEnabled="isEnabled" @toggle="toggleIsEnabled">
<label slot="left">{{ $t('general.dealer') }}</label>
<label slot="right">{{ $t('general.wholesale') }}</label>
</SwitchButton>

数据:
data:()=>{
return {
isEnabled:true
}
}

methods 中创建一个方法部分:
toggleIsEnabled:function(value){
this.isEnabled = value;
}

来自 SwitchButton 的发射值使用自定义事件发射器的组件 toggle会触发回调函数 toggleIsEnabled在父组件中。

关于javascript - Vue.js - 绑定(bind)到组件的 Prop 未显示正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60721300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com