서버에 내 React App을 렌더링하고 있지만이 오류는 TypeError: match is not a function
입니다. 반응 라우터 문서가 다른 현명한 말을하기 때문에이 문제를 해결하는 방법을 알지 못합니다.일치하는 항목이 명확하게 정의되어있는 이유는 무엇입니까?
var routes = require('./public/src/routes');
var React = require('react');
var renderToString = require('react-dom/server');
var match = require('react-router');
var RouterContext = require('react-router');
app.get('*', (req, res) => {
match(
{ routes, location: req.url },
(err, redirectLocation, renderProps) => {
if (err) {
return res.status(500).send(err.message);
}
let markup;
if(renderProps) {
markup = renderToString(React.createElement(RoutingContext, renderProps));
}
return res.render('index', { markup });
}
)
})
정확하게 '일치'가 여기에 가져 왔습니까? https://www.npmjs.com/package/react-router 문서에서 'react-router'가 함수를 내보내지 않는다는 것이 꽤 분명합니다. 또한'var match = require ('react-router'); var RouterContext = require ('react-router');'. 'require ('react-router')가 호출 될 때마다 다른 값을 반환 할 것으로 기대하고있는 것 같습니다. 그건 말이되지 않습니다. 'require ('react-router')는 항상 같은 값을 반환합니다. –