Dva: 定义多于一个/分割符的路由匹配时报错

Created on 20 Dec 2017  ·  1Comment  ·  Source: dvajs/dva

Code to reproduce the issue: (请提供可复现的代码或者步骤)

访问多于一个/分割符的路由匹配时报错

路由里面的component的component属性如果用()=>import('something')方式引入,在访问如同

http://domain/first/

http://domain/first/second

的地址会报错

import React from 'react';
import { Router, Switch, Route } from 'dva/router';
import dynamic from 'dva/dynamic';

function RouterConfig({ history, app }) {
  const Home = dynamic({
  app,
  component: () => import('./routes/Home/Home'),
});

const Partner = dynamic({
  app,
  component: () => import('./routes/Partner/Partner'),
});

const PartnerDetail = dynamic({
  app,
  component: () => import('./routes/Partner/PartnerDetail'),
});

return (
  <Router history={history}>
    <Switch>
      <Route exact path="/" component={Home} />
      <Route exact path="/partner" component={Partner} />
      <Route exact path="/partner/:name" component={PartnerDetail} />
    </Switch>
  </Router>
);
}

export default RouterConfig;

Expected behavior: (预期的正常效果)

访问 http://domain/partner/www 时进入

 <Route exact path="/partner/:name" component={PartnerDetail} />

Actual behavior: (实际效果)

Unhandled Rejection (Error): Loading chunk 2 failed. HTMLScriptElement.onScriptComplete internal:/webpack/bootstrap df2d9286a38225b2cb63:756 This screen is visible only in development. It will not appear if the app crashes in production. Open your browser’s developer console to further inspect this error.

然后如果把

 const Home = dynamic({
    app,
    component: () => import('./routes/Home/Home'),
  });

里的component: () => import('./routes/Home/Home'),换成component: () => HomeRouter 就好了(这里的HomeRouter是通过import HomeRouter from './routes/Home/Home';导入的

Versions of packages used: (哪个库的哪个版本出现的问题)

"dva": "^2.1.0",
"dva-loading": "^0.3.0",
"history": "^4.7.2",
"query-string": "^5.0.0",
"react": "^16.2.0",
"react-dom": "^16.2.0",
"react-slick": "^0.16.0"

Most helpful comment

Add "publicPath": "/" to .webpackrc or .roadhogrc can fix this issue

>All comments

Add "publicPath": "/" to .webpackrc or .roadhogrc can fix this issue

Was this page helpful?
0 / 5 - 0 ratings