Vue: Slot com escopo avisa quando usado dentro do componente dinâmico no elemento regular

Criado em 13 jun. 2019  ·  4Comentários  ·  Fonte: vuejs/vue

Versão

2.6.10

Link de reprodução

https://jsfiddle.net/mybeta/1dfwsazn/

Passos para reproduzir

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>

O que é esperado?

Nenhum aviso.

O que realmente está acontecendo?

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.

bug contribution welcome good first issue has PR warnings

Comentários muito úteis

Eu atualizei meu comentário, mas o aviso parece aparecer mesmo assim, o aviso não deveria aparecer de fato

Todos 4 comentários

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?

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

paceband picture paceband  ·  3Comentários

franciscolourenco picture franciscolourenco  ·  3Comentários

aviggngyv picture aviggngyv  ·  3Comentários

wufeng87 picture wufeng87  ·  3Comentários

gkiely picture gkiely  ·  3Comentários