当前位置: 首页 > 面试题库 >

在react.js中导出多个模块

卫念
2023-03-14
问题内容

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
}

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


问题答案:

您只能声明一个默认出口,例如:

export default App; 要么 export default class App extends React.Component {...

然后做 import App from './App'

如果要导出更多内容,则可以使用 命名的 导出内容,而无需使用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不同。



 类似资料:
  • 我正在尝试创建一个导出多个ES6类的模块。假设我有以下目录结构: 和每个导出一个默认ES6类: 我目前有我的设置如下: 但是,我无法导入。我希望能够这样做,但找不到类: 在ES6模块中导出多个类的正确方法是什么?

  • 我试图上传一个图像到内存使用multer,然后处理它与夏普和保存到磁盘。当我尝试在我的中间件中做多个module.exports时。 错误是: TypeError FileUpload.Single不是函数 到目前为止的路线是: 当我刚刚有下面的路由之前,尝试添加图像处理,我没有得到一个错误;

  • 我试图实现的是创建一个包含多个功能的模块。 模块. js: 我遇到的问题是,是一个对象类型,是一个URL字符串,但是当我有这个时,它总是抱怨类型是错误的。 这种情况下如何申报多个module.exports?

  • 问题内容: 目前,我在自己的文件中有4个子类。我要求它们都在同一个文件中。我想知道是否可以在一个模块中包含所有这四个类。目前,我正在像这样导入它们 我想这样导入 甚至 我的班级定义如下 问题答案: 您可以这样导出多个类: 例如 People.js 并按照您正确提到的方式访问这些类:

  • 我正在尝试将钩子{count,setCount}=useState(0)导出到另一个函数,以便能够获取{count}值。我的应用程序是通过添加项目来制作一个简单的清单,然后当按下提交按钮时,获取该清单的渲染。 以下是我的库存对象列表: 最好的方法是将我的钩子移动到应用程序函数中,但是增加或减少{计数}会影响我的所有项目。 在运行函数displayOrder时,是否仍要为每个项呈现{count}?

  • 本文向大家介绍在React.js中发出HTTP请求,包括了在React.js中发出HTTP请求的使用技巧和注意事项,需要的朋友参考一下 在典型的Web应用程序中,客户端通过浏览器发出http请求,而服务器在响应中发送带有数据的html页面。 但是在单页应用程序(SPA)中,我们只有一页,每当客户端向服务器发出http请求时,它通常都会以json / xml格式的数据进行响应。 为了发出http请求