Javascript React路由器v4等效于match()

Javascript React路由器v4等效于match(),javascript,reactjs,react-router,isomorphic-javascript,Javascript,Reactjs,React Router,Isomorphic Javascript,我正在做一个通用的react项目。我找到了很多有用的资源来创建这样一个应用程序,但大多数似乎已经过时了。其中一个特别完美,但问题是代码的一个非常重要的部分是用React router版本3编写的 代码如下: match({ routes, location: req.url }, (err, redirectLocation, props) => { if (err) { res.status(500).send(err.message); } else if (redir

我正在做一个通用的react项目。我找到了很多有用的资源来创建这样一个应用程序,但大多数似乎已经过时了。其中一个特别完美,但问题是代码的一个非常重要的部分是用React router版本3编写的

代码如下:

match({ routes, location: req.url }, (err, redirectLocation, props) => {
  if (err) {
    res.status(500).send(err.message);
  } else if (redirectLocation) {
    res.redirect(302, redirectLocation.pathname + redirectLocation.search);
  } else if (props) {
    const markup = renderToString(<RoutingContext {...props} />);
    res.render('index', { markup })
  } else {
    res.sendStatus(404);
  }
});
(请记住,它看起来是这样的,因为我是用巴贝尔编译的)


我的问题是,在使用react router 4时,如何获得与上述代码片段相同的功能?

V4对代码库进行了一些重大更改。如果要继续使用match,必须切换回较低版本。请参阅一个类似的问题,该问题建议在服务器端渲染中使用StaticRouter恢复到旧版本是开发中的常见做法吗?我觉得最好是适应新的变化。通过返回,我是否会遗漏任何内容?请参考可能的内容useful@AaronGill-Braun在这里找到任何运气,我在同一个地方,寻找一个类似的解决方案,使应用程序呈现。@Arongill Braun我面临同样的情况,你能找到解决方案吗?
TypeError: (0 , _reactRouter.match) is not a function