簡體   English   中英

反應動態路由器

[英]React Dynamic Router

如何使它動態化? 我目前有靜態路由,但現在需要一個可選的url參數

我想要實現的是有2個這樣的可選段:

/users/{id}/{something}

'id'和'something'是可選參數

當我僅訪問/ users時,它將轉到用戶列表

server.js

 require('babel-register'); const express = require('express'); const React = require('react'); const ReactDOMServer = require('react-dom/server'); const { StaticRouter } = require('react-router-dom'); const lodash = require('lodash'); const fs = require('fs'); const baseTemplate = fs.readFileSync('./index.html'); const template = lodash.template(baseTemplate); const App = require('../client/Root').default; const port = 3000; const server = express(); server.use('/public', express.static('./public')); server.use(function (req, res) { const context = {}; const body = ReactDOMServer.renderToString( React.createElement( StaticRouter, { location: req.url, context: context }, React.createElement(App) ) ); res.write(template({ content: body })); res.end(); }) server.listen(port, function () { console.log(`server running at port ${port}`) }); 

在我的反應組件中

 const Root = () => ( <Provider store={store}> <Switch> <Route path='/users' exact component={Home}/> </Switch> </Provider> ) 

您可以將以下模式用於react-router ...

<Route path="/users/:id" component={SomeComponent} />

然后您將可以訪問SomeComponentidthis.props.match.id

您可以嵌套路線。

const Root = () => (
  <Provider store={store}>
    <Switch>
      <Route path="/users" component={Home}>
        <IndexRoute component={YourDefaultComponent} />

        <Route path=":id/:something" component={YourOtherComponent} />
      </Route>
    </Switch>
  </Provider>
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM