私はこのエラーを解決できません... 私はlocalhost:3000をリフレッシュするので、 そして、それは私にエラーを示しています。ルーティング、ユニバーサルアプリケーション(Nodejs、React)、エラー(0、_reactRouter.match)は関数ではありません
はTypeError:(0、_reactRouter.matchは)私は、 "反応し、ルータの" インストールされている機能
ではありません: "^ 4.0.0"
import Express from 'express';
import {RouterContext, match} from 'react-router';
import {renderToString } from 'react-dom/server';
import React from 'react';
import routes from './routes.js'
var app = new Express();
app.set('view engine', 'ejs');
app.set('views',__dirname);
//////////////////////////////////////////////////////////////////////
app.get('*', (req, res) => {
match(
{ routes, location: req.url },
(err, redirectLocation, renderProps) => {
if (err) {
return res.status(500).send(err.message);
}
if (redirectLocation) {
return res.redirect(302, redirectLocation.pathname + redirectLocation.search);
}
var markup;
if (renderProps) {
// if the current route matched we have renderProps
markup = renderToString(<RouterContext {...renderProps}/>);
} else {
// otherwise we can render a 404 page
markup = renderToString(<NotFoundPage/>);
res.status(404);
}
// render the index template with the embedded React markup
return res.render('index', { markup });
}
);
});
//////////////////////////////////////////////////////////////////////////////////
var port = process.env.PORT || 3000;
app.listen(port,()=>{
console.log('Server is listening on port ' + port);
});
インストールされた反応ルータのDOMをインポートしたにもかかわらず、StaticRouterが定義されていないというエラーが表示されます しかし、ここで説明したようにしました(https://scotch.io/tutorials/react-on-the-server -for-beginners-build-a-universal-react-and-node-app)、サーバー側でのみ動作します。クライアント側では、Webページを開くと、生のファイルと辞書のみが表示されます。 myとscotchコードの主な違いはwebpack.config.jsファイルにあります。私のコードが正しく動作しないのはなぜですか? –