este é o playground vuetify
este é todo o meu código:
<v-item-group v-model="model">
<v-data-table :items="items">
<template #item="{ item }">
<v-item #="{ toggle, isSelected }">
<tr
v-ripple
:style="isSelected ? 'background-color: red' : ''"
@click="toggle"
>
<td>{{ item.text }}</td>
</tr>
</v-item>
</template>
</v-data-table>
</v-item-group>
import { ref } from 'vue'
const model = ref();
const items = [1, 2, 3, 4, 5, 6, 7, 8, 9].map(e => ({
text: 'some text' + e,
}))
Eu só quero aplicar ondulação a cada linha do VDataTable, mas quando clico no tr
elemento, a ondulação será mostrada assim:
Existe alguma maneira de fazer a exibição da ondulação corretamente?
Achei que seria correto se eu não usasse isSelected
emstyle
Interessante. Ao clicar no tr, o v-ripple insere um elemento contendo a animação. Mas a atualização subsequente faz
style
com que o elemento tr seja substituído e o elemento do v-ripple seja movido para o pai, proporcionando a animação quebrada.Em vez de usar
:style
, use:class
, que não tem esse problema. Você pode usar a classe do Vuetifybg-red
ou fornecer a sua própria:Dê uma olhada no playground atualizado