gpt4 book ai didi

javascript - 我怎样才能 history.pushState() 然后立即转到 URL 栏中的页面?

转载 作者:行者123 更新时间:2023-11-30 16:05:37 24 4
gpt4 key购买 nike

我用谷歌搜索了自己,但没有成功。

在 React Router 环境中,我试图在用户单击按钮时切换到新的 View 页面(即客户端)。

我可以使用 history.pushState() 将正确的 URL 放入浏览器的导航栏中,但我不知道如何让它转到到那个 URL。立即点击刷新按钮正是我想要的,但这当然不是真正的解决方案。

那么近又那么远。我希望有办法做到这一点?

这是历史推送线:history.pushState('/slides/' + '图像集路径')

路由器配置:

ReactDOM.render((
<Router history={ browserHistory }>
<Route path="/" component={ osconSPA } history={ browserHistory }>
<IndexRoute name="home" component={ Home }/>
<Route path="browse" component= { Browse }/>
<Route path="zoomer" component= { Zoom }/>
<Route path="zoomer/:imageId" component={ Zoom }/>
<Route path="upload" component={ Upload }/>
<Route path="slides" component={ SlideShow } />
<Route path="slides/:viewSet" component={ SlideShow } />
<Route path="*" component={ Home }/>
</Route>
</Router>
), document.getElementById("main"))

最佳答案

我一直在寻找,我认为我找到了解决方案,或者至少到目前为止它似乎完美无缺:

history.pushState('/slides/' + 'path to an imageset')
location.reload()

上述策略虽然可行,但会导致服务器故障,我绝对不想这样做。

在这篇文章中找到了答案Programmatically navigate using react router

以下方法适用于 React-router 2.2.0 版;该帖子中还讨论了其他版本的其他解决方案。

基本上,在创建类之后为组件定义 contextTypes

NewClass.contextTypes = {
router: React.PropTypes.object.isRequired
}

然后将新路径推送到路由器:

handleClick() {
this.context.router.push('/route/path')
}

我希望有人能够评论 contextTypes 对象在那里做什么?

关于javascript - 我怎样才能 history.pushState() 然后立即转到 URL 栏中的页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37105745/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com