Usando Vue3 e Vuetify para criar um componente de botão de opção sim/não.
Recebo este erro com o código abaixo. Unexpected mutation of "selectedValue" prop.
Entendo que os adereços não devem ser alterados, mas não consigo entender como implementar algo assim.
YesNoRadioButton.vue
<template>
<v-radio-group inline :label=title v-model=selectedValue>
<v-radio label="Yes" :value=true></v-radio>
<v-radio label="No" :value=false></v-radio>
</v-radio-group>
</template>
<script setup>
import { defineProps } from 'vue'
defineProps({
title: String,
selectedValue: Boolean
})
</script>
Parent.vue
<template>
<YesNoRadioButton title="Are You Sure?" :selectedValue=userAnswer />
</template>
<script setup>
import YesNoRadioButton from './YesNoRadioButton.vue'
const userAnswer = ref(true);
</script>
Você deve definir
v-model
o pai no<YesNoRadioButton />
elemento, então, seguindo a documentação do Vue sobre como definir um modelo v em um componente personalizado, o componente filho precisa receber o modelo v como um suporte. Este suporte deve ser vinculado ao<v-radio-group>
(ligação unidirecional, não como modelo v) e, em seguida, o grupo de rádio deve emitir seu valor atualizado para o pai, o que completará a ligação bidirecional entre o modelo v pai e o rádio -grupo.Pai.vue
YesNoRadioButton.vue
Exemplo do Vuetify Playground