Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 响应页面不会在url查询更改时重新提交_Javascript_Reactjs_React Router_Components_Rerender - Fatal编程技术网

Javascript 响应页面不会在url查询更改时重新提交

Javascript 响应页面不会在url查询更改时重新提交,javascript,reactjs,react-router,components,rerender,Javascript,Reactjs,React Router,Components,Rerender,我正在尝试创建一个react页面,该页面根据url中的查询具有不同的内容。例如:things?type=0和things?type=1导致不同的过滤内容 问题是,React在切换到这些页面时不会触发我的页面的重新阅读。我需要手动刷新页面以获得所需的结果 我尝试使用内置的生命周期功能,但没有一个会触发页面刷新。它试图用component willreceiveprops方法获取我的内容,然后我必须点击链接两次以获取我的过滤内容(这比不刷新页面但不方便用户使用要好) 我使用它。您可能希望使用或类似的

我正在尝试创建一个react页面,该页面根据url中的查询具有不同的内容。例如:
things?type=0
things?type=1
导致不同的过滤内容

问题是,React在切换到这些页面时不会触发我的页面的重新阅读。我需要手动刷新页面以获得所需的结果

我尝试使用内置的生命周期功能,但没有一个会触发页面刷新。它试图用
component willreceiveprops
方法获取我的内容,然后我必须点击链接两次以获取我的过滤内容(这比不刷新页面但不方便用户使用要好)


我使用它。

您可能希望使用或类似的库来创建路由

如果你想自己去,你必须听浏览器历史的变化。您可以这样做,例如:

componentDidMount: function () {
  var component = this;

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

我不确定这是否是一个好方法,但至少应该有效。

您可能希望使用或类似的库来创建路由

如果你想自己去,你必须听浏览器历史的变化。您可以这样做,例如:

componentDidMount: function () {
  var component = this;

  window.onpopstate = function() {
    console.log(window.history.state);
    component.setState({
      query: window.location.search
    });
  };
};
我不确定这是不是一个好办法,但至少应该奏效