当重定向到相同路径名但具有不同路由参数时,History.push 不起作用

Lau*_*ris 5 javascript frontend reactjs react-router

我有以下路线"/event/:eventId"

当用户从主页点击卡片时,它会重定向到活动页面(到目前为止一切正常)

但在事件页面内部,我有其他卡重定向到具有不同 ID 作为路由参数的其他事件页面,然后单击然后仅更改路径,但不会重新呈现页面。

看来,如果我位于具有相同路径名的页面中,无论路由参数发生变化,它都不会重新渲染页面。

我尝试使用<Link>组件代替history.push但它也不起作用。

这就是重定向功能:

 const onCardClick = () => {
    history.push(
      EVENT_PAGE_LOCATION.toUrl({
        eventId: event?.id,
      }),
    );
  };


Run Code Online (Sandbox Code Playgroud)

Lau*_*ris 3

事实证明,页面正在重新渲染,但它们没有被卸载并再次执行 graphql 查询。

所以这是一件重要的事情,React Router 不会卸载页面

每次参数更改时我都必须重新获取查询:

useEffect(() => { 
 refetchEvent()
}, [params])
Run Code Online (Sandbox Code Playgroud)