Feliz: 不同模块中的相同组件名称 - 已识别已声明错误

创建于 2020-11-29  ·  6评论  ·  资料来源: Zaid-Ajaj/Feliz

朋友你好,

我不确定(再次😄)这是我在做一些愚蠢的事情还是错误。

我有两个名为“view”的组件,并用[<ReactComponent>]属性装饰。 他们每个人都在不同的模块中。 像这样的代码会在寓言构建期间导致错误:

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)

有趣的是,当我将它们命名为“视图”(带有大写 V)时,它起作用了。

最有用的评论

嗨 Roman,最新的 Feliz v1.22 已推送到 nuget,它将不再自动将函数名称大写。 相反,它会发出一个编译器警告,告诉你好心地要求你自己做,这允许 Fable 自己解决命名冲突 :smile:

所有6条评论

我怀疑这是插件和 Fable 的名称冲突解决方案之间的冲突。

抄送@alfonsogarciacaro

当你说不同的模块时,你的意思是不同的文件,对吧? 当函数名称以小写开头时,插件会将其转换为大写以更好地与 React 工具配合使用。 不确定具体在哪一点,但我认为这与 Fable 名称冲突解决方案相冲突,并导致两个引用具有相同的名称。 有两种方法可以解决这个问题:

  1. 添加更多编译器和插件魔法来尝试修复这种情况。
  2. 与其尝试自动大写,不如添加一个警告,建议用户自己大写

以防万一你想知道,我更喜欢第二个选项😉

@Dzoukr 不,这是插件代码生成中的一个错误 :smile:

@alfonsogarciacaro发出警告可能是要走的路,在我开始处理文档和注意事项之前,我将很快重新编写编译器插件。 首先,我想弄清楚为什么记录会打破 React 工具......😓

哈! 终于有事了😄

是的,它在不同的文件中,但没问题,我可以自己命名它们(并同意@alfonsogarciacaro 的观点,即带有编译器警告的记录良好的规则可能比某种黑魔法更容易和更清洁)。

嗨 Roman,最新的 Feliz v1.22 已推送到 nuget,它将不再自动将函数名称大写。 相反,它会发出一个编译器警告,告诉你好心地要求你自己做,这允许 Fable 自己解决命名冲突 :smile:

非常感谢,伙计!

此页面是否有帮助?
0 / 5 - 0 等级