我正在使用最新版本的反应路由器(^ 3.0.0)。
我正在尝试使用onEnter挂钩中止其中一个组件的转换:
var AuthorPage = React.createClass({
statics: {
onEnter: function(nextState, replace, callback) {
replace('/');;
//hashHistory.replace('/');
}},...
当我使用onEnter挂钩的替换方法时,它工作正常(组件确实更改回我的主应用程序组件)但URL保持不变: http://localhost:9005/#/authors代替http://localhost:9005/#。
另一方面,当我使用hashHistory.replace方法时,组件和URL都会正确更改(使用react-router的hashHistory)。
我想澄清两件事:
谢谢
答案 0 :(得分:0)
您应该使用replace
。使用hashHistory
不会正确中断转换。
您需要进行更多挖掘,以确定它为何不更新网址。它应该是。如果你能找到这个功能:
https://github.com/mjackson/history/blob/v2.x/modules/createHashHistory.js#L93-L123
在node_modules/history/createHashHistory.js
(它将在ES5中),您可以尝试记录您在那里收到的位置。
如果没有调用,您可以尝试检查redirectLocation
中match
回调的historyListener
值。