2.6.10
https://jsfiddle.net/mybeta/1dfwsazn/
Quando eu uso as advertências de análise de modelo DOM para adicionar um componente (por exemplo, <tr is="custom-row">
), não posso usar slots com escopo (slotProps) sem receber um aviso no console. Eu gostaria de usá-lo desta forma:
<tr is="custom-row" v-slot="slotProps">
slotProps: {{slotProps.test}}
</tr>
Nenhum aviso.
Recebo o seguinte aviso no console.
[Vue warn]: Error compiling template: v-slot can only be used on components or <template>.
O resto parece funcionar conforme o esperado.
Como diz o aviso, v-slot
só pode ser usado nos componentes do wrapper ou aninhado no próprio componente, mas em uma tag template
.
Anteriormente, slot-scope
permitiria esse uso, mas foi removido, você pode verificar o RFC: https://github.com/vuejs/rfcs/blob/master/active-rfcs/0001-new-slot- syntax.md.
Se você tiver apenas um slot com escopo, deverá ser capaz de fazer
<tr :is="customComp" v-slot="data"></tr>
Olá @posva , muito obrigado pelo seu comentário!
Como sugerido, também tentei usar v-slot
aninhado dentro de uma tag template
, algo como o abaixo.
<div is="test-component">
<template v-slot:default="slotProps">
slotProps: {{slotProps.test}}
</template>
</div>
No entanto, isso também produz um aviso, consulte violino:
https://jsfiddle.net/mybeta/bhcoLwu3/
Ao evitar as advertências de análise do modelo DOM, funciona perfeitamente:
<test-component>
<template v-slot:default="slotProps">
slotProps: {{slotProps.test}}
</template>
</test-component>
mas acredito que preciso usar a ressalva, ao usar o componente em uma tag tr
.
Além disso, você se importaria de explicar este comentário um pouco mais?
Se você tiver apenas um slot com escopo, você deve ser capaz de fazer `
Obrigado!
Eu atualizei meu comentário, mas o aviso parece aparecer mesmo assim, o aviso não deveria aparecer de fato
Qual é o status disso?
Comentários muito úteis
Eu atualizei meu comentário, mas o aviso parece aparecer mesmo assim, o aviso não deveria aparecer de fato