我正在努力让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>
);
由于
答案 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);