2.5.1からReact Router 4.11に移行します。 旧バージョンでは、私のISOMORPHIC/UNIVERSALアプリは起動時にデータベースからルート/コンポーネントを動的に取得します。その同じ機能を4.11で保持したいと思います。React Router 4データベースから即座にロードされるダイナミックコンポーネント
////////////////////////
// from client entry.js
////////////////////////
async function main() {
const result = await _createRouter(routes)
ReactDOM.render(
<Provider store={store} key="provider">
<Router history={history}>
{result}
</Router>
</Provider>
dest
);
}
//////////////////////
// from shared modules
//////////////////////
function _createRouter(routes) {
const childRoutes = [ // static routes, ie Home, ForgotPassword, etc];
////////////////////////
// crucial part here
////////////////////////
routes.map(route => {
const currComponent = require('../../client/components/' + route.route + '.js');
const obj = {
path: route.route,
component: currComponent
};
childRoutes.push(obj)
});
childRoutes.push({path: '*', component: NotFoundComponent});
return { path: '', component: .APP, childRoutes: childRoutes };
}
:反応ルータの2.5.1バージョンで
は、私のような私のDBから取得したデータであるルートパラメータと_createRouter呼び出すことにより、データベースから&部品ルートを動的にロードすることができました
4.11で同じイベントを実行してもドキュメントが見つからないことに私は不満を持っています。
render() {
return (
<Route path='/' component={Home} />
<Route path='/home' component={About} />
<Route path='/topics' component={Topics} />
)
}
これは、特に大規模なアプリケーションのために私には現実世界を表示されません:すべての例では、ハードコーディングされたようにルートがそう示しています。
データベースから私のルート/コンポーネントを動的にロードできるのであれば、私は2.5.1で4.11と同じ成功を収めていますか?
ありがとうございます!
その動的インポートの例がありますか?私はコンポーネントの小道具にrequireステートメントを埋め込もうとしましたが、そのアプローチは間違っています。 –