如果我总是重定向到应用内路由,那么react-router-dom(v4)中的Redirect
组件和this.props.history.push()
之间的区别是什么?在React中,渲染重定向比使用this.props.history.push总是更好?
E.g.假设我想将用户给定的标题添加到URL中,并将其从/foo/123
重定向到/foo/123/some-title
(两者都使用相同的路由/组件呈现)。
我在Redirect
的某些用途中看到通过状态。这最终会在哪里?
这是一种反模式,指定您要在状态中重定向到的位置?为什么不示例代码如下所示:
save() {
this.setState({ redir: '/new-path'; });
}
...
render() {
if (this.state.redir) {
return <Redirect to={this.state.redir} />;
}
...
}
通过用'withRouter'封装你的组件,你可以在层次结构的任何级别访问路由器道具 –
@ShubhamKhatri只要使用'withRouter'作为HOC的组件只使用历史记录推送,那么应该这不是一个问题。在我的情况下,我试图从使用'withRouter'的组件中访问'match',并且我没有得到我想要的结果 – Maru
那么Redirect是否会在引擎盖下使用history.push?我想知道理想的行为差异。 –