反应路由器:链接更改网址但不加载组件

Posted

技术标签:

【中文标题】反应路由器:链接更改网址但不加载组件【英文标题】:React router: Link changes url but doesn't load component 【发布时间】:2019-07-24 10:24:26 【问题描述】:

这让我发疯了。我有一个使用 react-router 的应用程序。当我从服务器加载时,一切正常。但是,当我尝试通过 Link 组件访问路由时,它只会更改 url 并且组件不会被加载。有人请帮我解决这个问题。

         class Example extends React.Component 
  constructor(props) 
    super(props);

    this.state = 
      Item: 5,
      skip: 0
    

    this.handleClick = this.handleClick.bind(this);
  

  urlParams() 
    return `http://localhost:3001/meetups?filter[limit]=$(this.state.Item)&&filter[skip]=$this.state.skip`
  

  handleClick() 
    this.setState(skip: this.state.skip + 1)
  

  render() 
    return (
      <div>
        <a href=this.urlParams()>Example link</a>
        <pre>this.urlParams()</pre>
        <button onClick=this.handleClick>Change link</button>
      </div>
    )
  



ReactDOM.render(<Example/>, document.querySelector('div#my-example' ))

【问题讨论】:

你能展示你的进口吗? 考虑使用此处的解决方案 - ***.com/questions/43351752/… 因为链接在路由器组件之外。路由器不知道该链接,这样做:&lt;Router&gt;&lt;div&gt;&lt;Link to="/dashboard/products"&gt;Products&lt;/Link&gt;&lt;Switch&gt;....all routes here&lt;/Switch&gt;&lt;/div&gt;&lt;/Router&gt; @MayankShukla 尝试使用内部路由器组件但无法正常工作 @MayankShukla 它工作正常。谢谢 【参考方案1】:

当我使用 react-router 时,链接到路由之外,会有警告它被禁止。所以这个时候,我会使用tag a或者history。

【讨论】:

以上是关于反应路由器:链接更改网址但不加载组件的主要内容,如果未能解决你的问题,请参考以下文章

更改 url 参数时反应路由器不重新加载组件

如何调试反应路由器未在 url 更改时加载组件

在浏览器的后退按钮上反应路由器历史记录

突出显示反应路由器 v4 中的默认链接

在反应路由器中,我无法更改视图,但只有 url 正在更改

React 不会在路由参数更改或查询更改时重新加载组件数据