React页面不会在url查询更改时重新呈现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React页面不会在url查询更改时重新呈现相关的知识,希望对你有一定的参考价值。

我正在尝试根据网址中的查询创建具有不同内容的反应页面。例如:事物?类型= 0和事物?类型= 1导致不同的过滤内容。

问题是,当切换到这些页面时,React没有触发我的页面的重新呈现。我需要手动刷新页面以获得所需的结果。

我尝试使用生命周期中的构建功能,但不使用它们会触发页面刷新。它尝试在componentWillReceiveProps方法中进行我的获取,然后我必须在链接上单击两次以获取我的过滤内容(这比没有页面刷新但不是用户友好的更好)https://facebook.github.io/react/docs/component-specs.html

答案

您可能希望使用https://github.com/reactjs/react-router或类似的库来进行路由。

如果你想自己动手,你必须听取浏览器历史记录的变化。你可以这样做,例如:

componentDidMount: function () {
  var component = this;

  window.onpopstate = function() {
    console.log(window.history.state);
    component.setState({
      query: window.location.search
    });
  };
};

我不确定这是否是一个好的方法,但它应该至少起作用。

以上是关于React页面不会在url查询更改时重新呈现的主要内容,如果未能解决你的问题,请参考以下文章

如果没有在 URL 更改上重新加载页面,React 不会呈现

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

React Native ListView 不会通过单击重新呈现状态更改

React-router history.push()已成功更改URL,但未将我的JXS内容重新呈现为具有匹配路径的正确Route内容

在 Safari 中状态更改后,React 组件不会重新呈现

反应输入值不会在按钮更改时重新呈现