gpt4 book ai didi

vue.js - Vue 3 发射 Prop

转载 作者:行者123 更新时间:2023-12-05 01:30:41 28 4
gpt4 key购买 nike

我试图在 VUE 3 中传递一个 emit prop,每次传递它时我仍然得到 false,并且 prop 无法切换。

Accordion .vue

 <template>
<div class="flex" @click="toggleInfo()">
<slot></slot>
</div>
</template
<script>
export default {
props: {
value: {
required: true
}
},
setup(props, { emit }) {
const toggleInfo = () => {
emit('input', !props.value)
}
return {
toggleInfo
}
}
}
</script>

App.vue

<accordion v-model:value="isOpen">
...// just data
</accordion>

<script>
import { ref } from 'vue'
import accordion from '../components/Accordion.vue'

export default {
components: {
accordion
},
setup() {
const isOpen = ref(false)
return {
isOpen
}
}
}
</script>

每次我点击 toggleInfo,我仍然得到:

false

我的发射不工作。

最佳答案

v-model wiring has changed in Vue 3 :

  • 组件的 Prop 名称
    • Vue 2:
    • Vue 3:模型值
  • 组件发出的事件名称
    • Vue 2:输入
    • Vue 3:更新:模型值

由于 value 在技术上是一个自定义的 v-model Prop 名称,您必须调整发出的事件名称以匹配:

// emit('input', !props.value) ❌ wrong event name
emit('update:value', !props.value)

demo

关于vue.js - Vue 3 发射 Prop ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66885633/

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