React.JS 导航到哈希路由不会更新视图

React.JS Navigating to hash route does not update view

我是 React 新手,正在学习 Pluralsight 课程。该课程让我们实现了一个简单的路线。

var App = React.createClass({
    render: function () {
        var Child;

        switch (this.props.route) {
            case 'about':
                Child = About;
                break;
            default:
                Child = Home;
                break;
        }

        return ( 
            <div>
                <Child />
            </div>
        );
    }
});

function render(){
    var route = window.location.hash.substr(1);
    ReactDOM.render( <App route={route} /> , document.getElementById('app') );
}

window.addEventListener( 'hashChange', render );
render();

因此,当我启动应用程序时,主页会正常显示。然而,如果我转到地址栏并输入 http://localhost:3456/#about,浏览器 window 不会刷新。我必须手动刷新浏览器才能看到关于页面。但是,如果我返回并删除“#about”,主页就会正常显示。

我正在使用 windows 10,我在 Chrome 和 Microsoft Edge 上都试过了。

可能出了什么问题?

hashchange 不是驼峰式大小写,事件未跨浏览器标准化

使用此功能使其跨浏览器工作

function handleHashChange(callback) {
  if (!('onhashchange' in window)) {
    var oldHref = location.href;
    setInterval(function() {
      var newHref = location.href;

      if (oldHref !== newHref) {
        var _oldHref = oldHref;
        oldHref = newHref;
        callback.call(window, {
          'type': 'hashchange',
          'newURL': newHref,
          'oldURL': _oldHref
        });
      }
    }, 100);
  } else if (window.addEventListener) {
    window.addEventListener("hashchange", callback, false);
  } else if (window.attachEvent) {
    window.attachEvent("onhashchange", callback);    
  } 
}