【问题标题】:How change url with react-router如何使用 react-router 更改 url
【发布时间】:2021-01-09 23:11:06
【问题描述】:

我有一些组件

import { RouteComponentProps, withRouter } from 'react-router';
function MySearchComponent({ match, location, history }: RouteComponentProps) {
  const [query, setQuery] = useState<string>('');
  useEffect(() => {
    console.log('all fine!')
    history.replace(`/my_search_page?query=${query}`);
  }, [query]);
  // some code for change query
}

export const MySearch = withRouter(MySearchComponent);

怎么了?我曾尝试使用history.push 查询更改时,console.log 正确更改,但没有发生任何事情

UPD:对不起。这是我的错误:我的应用程序不支持搜索参数 感谢您的帮助

【问题讨论】:

  • console.log() 没有被调用?你能再放一些代码吗?您确定查询更改了吗?
  • 是的,它的调用很好,是的,查询已更改

标签: reactjs url react-router browser-history


【解决方案1】:

在我的应用程序中,我正在使用 useHistory 挂钩

import React, { useEffect } from "react";
import { useHistory } from "react-router-dom";

const Operations = () => {
  const history = useHistory();

  useEffect(() => {
    const res = prepareURLParams(filters);
    history.push(getRouterString("/", res));
  }, [filters]);
}

export default Operations;

【讨论】:

  • @NachoZullo 我正在阅读这篇文章medium.com/@Charles_Stover/… 并发现此文本“react-router 的内置 withRouter HOC 不会在路由更改时重新渲染组件,”也许这很有意义......
  • 对不起。这是我的错误:我的应用程序不支持搜索参数 感谢您的帮助
  • @Dmitry 什么样的应用程序不支持查询(搜索)参数?是移动应用吗?
  • @Alexey 我的 Web 应用程序是一个在大型 Web 应用程序中工作的微型微服务。我试图在没有搜索参数的情况下更改 /blah-blah-blah 上的 url,它工作正常。看起来像是从基础组件中的 url 切割出来的搜索参数
猜你喜欢
  • 1970-01-01
  • 2018-12-22
  • 1970-01-01
  • 2021-08-19
  • 2023-01-12
  • 1970-01-01
  • 2018-01-24
  • 2019-11-30
  • 2016-09-05
相关资源
最近更新 更多