无法读取未定义的属性“pushState”

2024-01-02

我对 React Router 有一个简单的配置。我还有另一个基本上用 ... 包裹的,它有效。但是这个没有(当然我尝试使用不同的实现,就像答案中建议的那样)这个帖子 https://stackoverflow.com/questions/31079081/programmatically-navigate-using-react-router以及许多其他人。

控制台错误是这篇文章的标题。 使用 ES6 和 React-router v.1 以及基于哈希的路由。

I read a lot文章太多了,对于实现简单的路由来说太不必要了,现在几乎讨厌react和react-router。请帮忙。

    componentWillReceiveProps() {
       this.contextTypes = {
          history: React.PropTypes.object
       }
    },
    _handleRoute(e) {
       e.preventDefault()
       this.history.pushState(null, `/somepath`);
    },
    render() {
        return(
          <div onClick={this._handleRoute}>
            Some Content.
          </div>
        );
      } 

or:

render() {
        return(
          <div>
            <Link to={`/somepath`}> link </Link>
          </div>
        );
      }

反应路由器 v1:

历史对象中有为此目的创建的 PushState 方法。

首先,分配给 router 的组件必须为子组件提供 pushState 方法作为函数 prop:

//Router Component
render ()
  return (
    <SomeComponent changeRoute={this.props.history.pushState}
  )

然后,在我想要更改函数中的路由的组件中,我只需执行以下操作:

//SomeComponent
onClick() {
  this.props.changeRoute(null, 'somepath', {query: "something"});
}

React 路由器 v.2

import {browserHistory} from 'react-router';

//SomeComponent

browserHistory.push('somepath');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法读取未定义的属性“pushState” 的相关文章

随机推荐