我有一个音频播放器,我希望当前URL始终指向当前播放的位置。所以我想我会用相同的密钥将新位置推送到路由器,告诉反应路由器它应该忽略散列更改。反应路由器:忽略hashchange
audioElement.addEventListener('timeupdate', (evt) => {
this.props.router.push({
...this.props.location,
hash: '#'+audioElement.currentTime
});
});
但是,随着音频回放,页面内容不断重新加载。我该如何防止路由器对hashchange事件做出反应?
我正在使用react router 3和redux。如果它做出改变,我愿意升级到v4版本,但它只是为了尝试而看起来太费劲了。
谢谢@炼狱。存在的问题是,当我进行推送时,URL变为'''''',页面中断。但它不刷新,所以我认为我们正在走上正轨。 :-) – Sixtease
@Sixtease我编辑了答案,加了'... this.props.location' – Purgatory
我应该早点看过这个:这不能完成这项工作,因为它不会更改地址栏中的URL,所以复制粘贴URL的目的将指向当前位置,这不能通过这个来完成...除非我错了。 :-) 我也试过应用路由器中间件,但似乎不可能从那里取消重新渲染,真的。 :-( – Sixtease