2016-11-27 78 views
0

路由器啓動時,是否可以在運行時動態地向路由器添加新路由?例如,用戶在輸入中輸入一些東西,然後創建一個新的路由。如何動態添加新路線?

+0

請包括您希望能夠添加路由的類型的例子。答案可能不是,但你可以用另一種方式做到這一點,但我需要看看你想要做什麼以確定。 –

+0

@PaulS現在我只是做一個小教程,這個問題已經發生,現在我沒有實際的例子。我只是擔心,如果有可能,例如服務器由於某些條件而給你一條新的路線......但是,可能沒有真實情況下運行時路由創建 – aspirisen

+1

一般你想做什麼是格倫雷耶斯在他的回答中所描述的,即使用可以具有任何價值的路線參數。 –

回答

4

你可能想使用route params

下面是一個簡單的例子:

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import {Router, Route, browserHistory, Link} from 'react-router'; 

class App extends React.Component { 
    state = { 
    value: '', 
    } 

    handleChange = (event) => { 
    this.setState({ 
     value: event.target.value, 
    }); 
    } 

    render() { 
    return (
     <div> 
     <input type="text" value={this.state.value} onChange={this.handleChange} /> 
     <Link to={`/${this.state.value}`}>{this.state.value && `Go to /${this.state.value.toLowerCase()}`}</Link> 
     </div> 
    ); 
    } 
} 

const Page = (props) => (
    <h1>{props.params.term}</h1> 
); 

ReactDOM.render(
    <Router history={browserHistory}> 
    <Route path="/" component={App}> 
     <Route path="/:term" component={Page}/> 
    </Route> 
    </Router>, 
    document.querySelector('#app'), 
);