如何动态添加新路由?

时间:2016-11-27 16:10:43

标签: reactjs react-router

是否可以在启动路由器时在运行时动态添加新路由到路由器?例如,用户在输入中键入内容,然后创建新路由。

1 个答案:

答案 0 :(得分:5)

您可能想要使用 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'),
);