React Router v4 - 重定向

时间:2017-06-14 15:19:17

标签: react-router-v4

我正在努力让React-Router v4上线,但我遇到了一些困难。我可以在浏览器中创建路由并测试它们并且它们可以正确解析,但是如果我尝试以编程方式将某人引导到某个路径,我会遇到问题。

重定向应该在用户点击表中的一行后发生,我可以看到onClick工作正常(所以我知道回调工作正常)但重定向不起作用......任何想法?

import { Redirect } from 'react-router-dom';
export default class Table extends Component {
...
...

  onClick(foo) {
    // let path = `/booking/${foo.bar}`;
    // console.log(path);
    // <Route path="/booking" render={() => <BookingForm />}/>;
    <Redirect to='/booking' />;
  }

...
...
}

我的路线是:

const Routes = () => (
    <main>
        <Switch>
            <Route exact path='/' component={HomePage} />
            <Route exact path='/cruises' component={Cruises} />
            <Route exact path='/booking' component={BookingForm} />
        </Switch>
    </main>
);

由于

1 个答案:

答案 0 :(得分:3)

我认为以下代码可以解决您的问题。

import { withRouter } from 'react-router-dom';
class Table extends Component {
...
...

  onClick(foo) {
    let path = `/booking/${foo.bar}`;
    this.props.history.push(path);
  }

...
...
}

export default withRouter(Table);