react.js 新手并尝试遵循 教程。不幸的是,页面中给出的代码不起作用。 webpack 抱怨
ERROR in ./App.jsx
Module build failed: SyntaxError: Only one default export allowed per module.
想知道如何解决它。谢谢。
=== App.jsx====
import React from 'react';
import ReactDOM from 'react-dom';
import { Router, Route, Link, browserHistory, IndexRoute } from 'react-router'
class App extends React.Component {
render() {
return (
<div>
<ul>
<li><Link to = "/home">Home</Link></li>
<li><Link to = "/about">About</Link></li>
<li><Link to = "/contact">Contact</Link></li>
</ul>
{this.props.children}
</div>
)
}
}
export default App;
class Home extends React.Component {
render() {
return (
<div>
<h1>Home...</h1>
</div>
)
}
}
export default Home;
class About extends React.Component {
render() {
return (
<div>
<h1>About...</h1>
</div>
)
}
}
export default About;
class Contact extends React.Component {
render() {
return (
<div>
<h1>Contact...</h1>
</div>
)
}
}
export default Contact;
=== main.js ===
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App.jsx';
ReactDOM.render(<App/>, document.getElementById('app'));
更新1
我注释掉了所有的 export default
并在最后添加了以下内容
module.exports = {
App: App,
Home: Home,
About: About,
Contact: Contact
}
现在没有编译错误,但网页是空白的。我不确定这里有什么问题。
原文由 packetie 发布,翻译遵循 CC BY-SA 4.0 许可协议
您只能拥有一个您声明的默认导出,如下所示:
export default App;
或export default class App extends React.Component {...
然后做
import App from './App'
如果您想导出更多内容,可以使用您声明的 命名 导出,而无需
default
关键字,例如:或者:
或者:
然后你像这样导入它们:
编辑:
教程中有一个错误,因为不可能在同一个
main.js
文件中进行 3 个默认导出。除此之外,如果文件外没有使用,为什么还要导出任何东西?正确main.js
:编辑2:
另一件事是本教程基于 react-router-V3,它的 api 与 v4 不同。