Feliz: Mesmo nome de componente em módulos diferentes - Identificado já foi declarado erro

Criado em 29 nov. 2020  ·  6Comentários  ·  Fonte: Zaid-Ajaj/Feliz

Olá amiga,

Não tenho certeza (de novo 😄) se sou eu fazendo algo estúpido ou é um bug.

Eu tenho dois componentes chamados "view" e decorados com o atributo [<ReactComponent>] . Cada um deles em um módulo diferente. Ter um código como este resulta em erro durante a construção da fábula:

ERROR in ./.fable-build/View.js
Module build failed (from C:/Dzoukr/Personal/dzoukr/SAFEr.Template/src/node_modules/babel-loader/lib/index.js):
SyntaxError: C:\Dzoukr\Personal\dzoukr\SAFEr.Template\src\src\SAFEr.App.Client\.fable-build\View.js: Identifier 'View' has already been declared (12:16)

O engraçado é que, quando eu os chamo de "Visualização" (com V maiúsculo), isso funciona.

Comentários muito úteis

Olá Romano, o último Feliz v1.22 foi enviado para o nuget e não colocará mais o nome da função em maiúsculas automaticamente. Em vez disso, ele emitirá um aviso do compilador que pede gentilmente que você faça você mesmo, o que permite que o Fable resolva as colisões de nomenclatura por conta própria: smile:

Todos 6 comentários

Suspeito que seja um conflito entre os plug-ins e a resolução de colisão de nomes do Fable.

cc @alfonsogarciacaro

Quando você diz módulos diferentes, quer dizer arquivos diferentes, certo? Quando o nome da função começa com minúsculas, o plug-in converte em maiúsculas para funcionar melhor com as ferramentas React. Não tenho certeza em que ponto exatamente, mas presumo que isso esteja em conflito com a resolução de colisão de nomes do Fable e faça com que duas referências tenham o mesmo nome. Existem duas maneiras de resolver isso:

  1. Adicione mais compiladores e plugins mágicos para tentar consertar esse caso.
  2. Em vez de tentar capitalizar automaticamente, adicione um aviso recomendando aos usuários que capitalizem sozinhos 👈 👈 👈 ❤️ 😍 ❤️ 🕺 🎉 🥇🎉 👍 🎉 🥇 👍 🕺 _ (me escolha, me escolha!) _

Caso você esteja se perguntando, eu prefiro a segunda opção 😉

@Dzoukr Nah, este é um bug na geração de código do plugin: smile:

@alfonsogarciacaro Emitir um aviso é provavelmente o caminho a percorrer, vou retrabalhar os plugins do compilador antes de começar a trabalhar na documentação e advertências. Em primeiro lugar, estou tentando descobrir por que os registros quebram no React tool ... 😓

HA! Finalmente algo 😄

Sim, está em um arquivo diferente, mas não há problema, posso nomeá-los sozinho (e concordo com @alfonsogarciacaro que regra provavelmente bem documentada com aviso do compilador seria mais fácil e mais limpa para você do que algum tipo de magia negra).

Olá Romano, o último Feliz v1.22 foi enviado para o nuget e não colocará mais o nome da função em maiúsculas automaticamente. Em vez disso, ele emitirá um aviso do compilador que pede gentilmente que você faça você mesmo, o que permite que o Fable resolva as colisões de nomenclatura por conta própria: smile:

Muito obrigado, cara!

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

Questões relacionadas

theimowski picture theimowski  ·  13Comentários

cmeeren picture cmeeren  ·  13Comentários

alfonsogarciacaro picture alfonsogarciacaro  ·  6Comentários

alfonsogarciacaro picture alfonsogarciacaro  ·  6Comentários

l3m picture l3m  ·  7Comentários