@outletArgs agora estão disponíveis como argumentos de nível superior

Na última versão do Discourse, os argumentos de outlet podem ser acessados como argumentos de nível superior para seus componentes conectores.

Em um template, isso significa que @outletArgs.foo pode ser substituído por @foo. Em Glimmer Component JS, this.args.outletArgs.foo pode ser substituído por this.args.foo.

O argumento antigo @outletArgs ainda está disponível, e não temos planos de descontinuá-lo. Portanto, não há pressa para atualizar nenhum código existente. No futuro, podemos introduzir uma regra customizada do eslint para detectar e modernizar automaticamente os usos de @outletArgs e this.args.outletArgs.

O inspetor de outlet de plugin já foi atualizado para exibir os argumentos da maneira moderna:

Faremos atualizações na documentação em breve.

18 curtidas

Muito mais consistente :+1:t2:

3 curtidas

Perdoe minha ignorância, mas onde você acessa esses args? Em um arquivo .gjs de conector? Ou em um renderInOutlet?

Existem duas maneiras de renderizar um componente conector em um outlet de plugin.

Uma é colocar seu componente em /connectors/{nome-do-outlet}/my-connector.gjs (ou uma combinação .js/.hbs). A outra maneira é criar seu componente em outro lugar e chamar api.renderInOutlet(\"{nome-do-outlet}\", MyConnectorComponent)

Em ambos os casos, os argumentos do outlet serão passados para o seu componente.