Реактив-роутер: совпадение и маршрут.Замена .match () в версии 4 - PullRequest
0 голосов
/ 28 января 2019

Как я могу сопоставить и маршрутизировать в response-router v4?

Ниже приведен фрагмент кода, который я написал с использованиемact-router (v2) и expressJs для рендеринга на стороне сервера.

 var routes = require('./src/routes')
 app.get('*', function(req, res) {

  ReactRouter.match({
    routes: routes,
    location: req.url
  }, function(err, redirect, props) {
    if (err) {
      res.status(500).send(err.message)
    }
    else if (redirect) {
      res.redirect(302, redirect.pathname + redirect.search)
    }
    else if (props) {
      var markup = renderToString(React.createElement(ReactRouter.RouterContext, props, null))
      res.render('index', { markup: markup })        
    }
    else {
      res.sendStatus(404)
    }
  })
})

Я в основном сопоставляю местоположение с маршрутами с помощьюact-router.match () функция.Я много искал в интернете и до сих пор не могу найти замену функции .match () в Reaction-router v4.Кто-нибудь, пожалуйста, скажите мне, как я могу преобразовать мой код выше для поддержки response-router v4?

./src/routes.js
module.exports = <Route path="/" component={App}>
  <IndexRoute component={Top}/>
  <Route path="first" component={First}/>
  <Route path="second" component={Second}/>
  <Route path="test" component={Test}/>
  <Route path="ask" component={Ask}/>  
  </Route>
...