Я предоставляю свое приложение React на сервере, но получаю эту ошибку 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 В документах довольно очевидно, что 'response-router' не экспортирует функцию. Также посмотрите на 'var match = require ('response-router'); var RouterContext = require ('response-router'); '. Кажется, вы ожидаете 'require ('response-router')', чтобы вернуть другое значение, которое вы вызываете. Это не имеет смысла. 'require ('response-router')' всегда будет возвращать одно и то же значение. –