单击即可在React JS中进行路由

Sub*_*han 0 routing reactjs react-router

我是React的新手,我想在单击按钮时导航到另一个组件。我只想执行一个简单的路由。这是我尝试过的代码。但是我无法路由。

import React, { Component } from 'react';
import { BrowserRouter as Router, Route, Switch, Redirect } from 'react-router-dom'
import Hello from './HelloComponent';
class App extends Component {

  constructor(props) {
    super(props);
    this.try = this.try.bind(this)
  }
  try = () => {
    alert();
    <div>
      <Router>
        <Route path="/hello" component={Hello} />
      </Router>
    </div>
  }
  render() {
    return (
      <div className="App">
        <div className="container">

          <button id="b1" onClick={this.try}>Click me</button>
        </div>
      </div>
    );
  }
}
export default App;
Run Code Online (Sandbox Code Playgroud)

请帮助我使用此代码在react JS中执行基本路由

Shu*_*tri 5

您无法将JSX返回给onClick处理程序,因为它不会做任何事情。

您需要预先在渲染中配置Routes并用于history.push更改Route

下面是示例代码,您可以参考

import React, { Component } from 'react';
import { BrowserRouter as Router, Route,Switch, Redirect} from 'react-router-dom'
import Hello from './HelloComponent';
class App extends Component {
  try = () => {
      this.props.history.push('/hello');
  }
  render() {
    return (
      <div className="App">
        <div className="container">
            <button id="b1" onClick ={this.try}>Click me</button>
            <Route path="/hello" component={Hello}/>
        </div>
      </div>
    );
  }
}
export default () => (
   <div>
      <Router>
           <Route component={App} />
      </Router>
  </div>
);
Run Code Online (Sandbox Code Playgroud)