“module.exports”有效,但“导出默认值”不起作用使用动态路由(React-Router)时

时间:2016-06-05 08:24:30

标签: reactjs webpack redux react-router

我在redux应用程序中使用动态路由。 (https://github.com/reactjs/react-router/blob/master/docs/guides/DynamicRouting.md

当我想动态路由反应组件时,会发生奇怪的事情。具体来说,下面将有效:

import React from 'react'

class Explore extends React.Component {

  render() {
    return (
      <div>
        <h2>Explore</h2>
      </div>
    )
  }

}

module.exports = Explore

但是,以下内容不起作用:

import React from 'react'

export default class Explore extends React.Component {

  render() {
    return (
      <div>
        <h2>Explore</h2>
      </div>
    )
  }
}

我使用带有babel加载器的Webpack进行捆绑,所以这很奇怪,我无法理解。除此之外,所有其他工作,这意味着当我不使用动态路由时,“导出默认类”工作没有问题。

有人能说清楚这个吗?非常感谢。

更新 - 以下是我的路线配置:

在Client Main js文件中:

import getDynamicRoutes from './routes.dynamic'

const rootRoute = {
  path: '/',
  component: App,
  childRoutes: getDynamicRoutes()
}

在routes.dynamic.js中:

export default () => {

  return [
    {
      path: 'explore',
      getComponent(nextState, cb) {
        require.ensure([], (require) => {
          cb(null, require('./components/Explore'))
        })
      }
    }, 
    {
      path: 'login',
      getComponent(nextState, cb) {
        require.ensure([], (require) => {
          cb(null, require('./containers/Login/Login'))
        })
      }
    },   
    {
      path: 'posts',
      getComponent(nextState, cb) {
        require.ensure([], (require) => {
          cb(null, require('./containers/PostList'))
        })
      }
    },  
  ]
}

0 个答案:

没有答案