gpt4 book ai didi

reactjs - 在react.js中导出多个模块

转载 作者:行者123 更新时间:2023-12-03 12:57:36 24 4
gpt4 key购买 nike

刚接触react.js并尝试关注tutorial 。不幸的是,页面中给出的代码不起作用。 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

我注释掉了所有导出默认值并在末尾添加了以下内容

module.exports = {
App: App,
Home: Home,
About: About,
Contact: Contact
}

现在没有编译错误,但网页是空白的。我不确定这里出了什么问题。

最佳答案

您只能有一个默认导出,您可以这样声明:

导出默认应用程序;或者导出默认类App extends React.Component {...

然后从'./App'导入App

如果您想导出更多内容,您可以使用 named 导出,您在声明时不使用 default 关键字,例如:

export {
About,
Contact,
}

或者:

export About;
export Contact;

或者:

export const About = class About extends React.Component {....
export const Contact = () => (<div> ... </div>);

然后你像这样导入它们:

import App, { About, Contact } from './App';

编辑:

教程中存在一个错误,因为无法在同一个 main.js 文件中进行 3 个默认导出。除此之外,如果没有在文件外部使用,为什么要导出任何内容呢?正确的 main.js :

import React from 'react';
import ReactDOM from 'react-dom';
import { Router, Route, Link, browserHistory, IndexRoute } from 'react-router'

class App extends React.Component {
...
}

class Home extends React.Component {
...
}


class About extends React.Component {
...
}


class Contact extends React.Component {
...
}


ReactDOM.render((
<Router history = {browserHistory}>
<Route path = "/" component = {App}>
<IndexRoute component = {Home} />
<Route path = "home" component = {Home} />
<Route path = "about" component = {About} />
<Route path = "contact" component = {Contact} />
</Route>
</Router>

), document.getElementById('app'))

编辑2:

另一件事是,本教程基于react-router-V3,其API与v4不同。

关于reactjs - 在react.js中导出多个模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46039976/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com