【发布时间】:2014-12-02 01:34:53
【问题描述】:
使用react-router 我正在寻找一种方法来更新页面 URL / 哈希,而无需路由器重新呈现整个页面。
我正在开发一个整页轮播,并希望每张幻灯片都有自己的 URL(允许用户刷新页面并返回到正确的幻灯片)。轮播稍后会有类似于this demo 的滑动,这意味着下一张幻灯片已预渲染。
我的旋转木马的精简版可用here。
当前幻灯片更改如下所示:
onClickLeft: function() {
this.setState({
selected: this.state.selected - 1
});
}
这工作正常,没有 URL 更新。我真正想要的是:
mixin: [Navigation],
onClickLeft: function() {
this.transitionTo('carousel-slide', {num: this.state.selected + 1});
}
这将设置当前幻灯片的道具,允许轮播动画。但是现在使用此方法会导致页面重新渲染并且不显示动画。
我看到ReactCSSTransitionGroup 用于路由转换,但这似乎是为了呈现新页面并转换旧页面。
如果已经有一种方法可以实现我正在寻找的东西,但我错过了,有人能指出我正确的方向吗?
【问题讨论】:
-
尝试在您的处理程序中将
this.props.activeRouteHandler()更改为this.props.activeRouteHandler({key: "test"})。这有帮助吗? -
虽然我不知道为什么,但这有效!我不得不将它与
componentWillReceiveProps结合起来以捕捉更新的道具并调用setState,但仍然非常棒!想要将此作为答案添加以便我接受吗? -
这只是一种预感,我没有时间去测试它。下面回答:-)
-
在底部查看我对
react router v4的回答。
标签: reactjs react-router