9

У меня есть приложение, основанное на статье http://moduscreate.com/code-splitting-for-react-router-with-es6-imports/. Я добавил некоторые ребенок маршруты и теперь моя конфигурация маршрутизатора как таковые:Webpack 2 + React - вложенные маршруты при разрыве кода с System.import

function errorLoading(err) { 
    console.error('Dynamic page loading failed', err); 
} 

function loadRoute(cb) { 
    console.log('load route called'); 
    return (module) => cb(null, module.default); 
} 

const obj = { 
    component: App, 
    childRoutes: [ 
    { 
     path: '/', 
     getComponent(location, cb) { 
     System.import('pages/Home') 
      .then(loadRoute(cb)) 
      .catch(errorLoading); 
     } 
    }, 
    { 
     path: '/gsgs', 
     getComponent(location, cb) { 
     System.import('pages/Gsgs') 
      .then(loadRoute(cb)) 
      .catch(errorLoading); 
     }, 
     childRoutes: [ 
     { 
      path: 'go', 
      getComponent(location, cb) { 
      System.import('pages/Gsgs/Home.js') 
       .then(loadRoute(cb)) 
       .catch(errorLoading); 
      }, 
     } 
     ] 
    }, 
    { 
     path: '/about', 
     getComponent(location, cb) { 
     System.import('pages/About') 
      .then(loadRoute(cb)) 
      .catch(errorLoading); 
     } 
    }, 
    ] 
}; 

/индекс,/о и/gsgs маршрутах запуск динамического кода загрузки просто отлично. Но/gsgs/go запускает a 404 с

bundle.js:2 Dynamic page loading failed Error: Loading chunk 0 failed.(…)

Что я делаю неправильно? Im, использующий

"webpack": "^2.1.0-beta.4", 
"webpack-dev-server": "^2.0.0-beta" 
+0

не уверен, почему вы получаете сообщение об ошибке, но просто обратите внимание, что вы можете использовать элемент JSX для настройки маршрутов вместо объекта, который становится неуправляемо большим. –

+0

Да, я знаю элемент jsx для маршрутизатора, я считаю, что обозначение объектов чище и легче читать – nuway

ответ

2

Я попытался воспроизвести проблему в блоге и, кажется, что-то не так. Я попытался это исправить, и я больше не могу видеть эту ошибку.

Вы можете обратиться к этому commit, который имеет изменения в отношении текущего мастера, и я могу динамически загружать дочерний маршрут.

Дайте мне знать, если вы снова столкнетесь с проблемами. Было бы здорово, если бы у вас был образец репо, который может воспроизвести проблему, я буду рад отлаживать.

Happy Help.

+0

, похоже, это решает проблему. Как вы думаете, в чем проблема? – nuway

+0

Итак, были пара проблем с существующим кодом. 1) Зависимости не были обновлены с помощью webpack2 2) Абсолютный путь HTML. После того, как они разрешили и добавили детские маршруты, кажется, что они работают нормально. Если это решит вашу проблему, было бы здорово, если вы сможете принять этот ответ. Спасибо. – Mihir

+0

Оказалось, что он терпит неудачу, потому что я не указал publicPath как '/'. Я думаю, что остальное было хорошо. спасибо Михиру – nuway