React - 从' ./ App.jsx'导入应用程序

时间:2018-01-27 22:20:52

标签: node.js reactjs jsx babel

我正在尝试学习Node和React,我遇到了一个有趣的问题 - 在下面的import语句中,我需要显式地键入文件格式(.jsx)否则,编译器borks up并抱怨它不能找到App.js文件。

            import App from './App.jsx';

注意 - App是一个jsx文件,保存为App.jsx。我使用了create-react-app作为样板代码。

4 个答案:

答案 0 :(得分:1)

这里你的假设不正确。

如果我是对的,那么假设您的文件是.jsx,那么您不需要在import语句中指定文件扩展名来导入.jsx文件。

但反过来说。

如果未指定文件的扩展名,则编译器会假定它是.js文件。所以,你所看到的行为并没有错。

如果您不想在import语句中包含扩展名,则只需创建.js个文件。编译器会自动检测其中写的jsx。这是欺骗import语句的最简单方法。

答案 1 :(得分:1)

另外,我在" 的行中找到了关于GitHub的更多信息。在Babel之前,.js和.jsx文件之间的区别是有用的,但它不再有用了。&# 34;

https://github.com/facebook/create-react-app/issues/87

所以,只要将它保存为.js并且我有编译ES6的babel就看起来像一个非问题。谢谢大家!

答案 2 :(得分:0)

任何javascript react片段都不会仅在.jsx文件中显示在纯.js文件中

答案 3 :(得分:0)

我建议关闭浏览器上正在运行的项目 (ctrl + c / command + c 在终端上完成运行项目)并执行 'yarn start' 或 'npm start' 再次。那么它会起作用! 当您添加 jsx、js 等新文件时,React 有时会显示错误。 我也和你有同样的问题。 (我将 App.js 更改为 App.jsx 并且发生了 webppack 错误)。 在这些情况下,重新启动项目将是解决方案!

最后你不需要指定文件扩展名(就像其他答案建议一样)。