在路由参数更改时重新渲染相同的组件(react-router-dom)

时间:2019-12-07 02:31:21

标签: reactjs react-router

我有这样的代码:

<BrowserRouter basname="/page">
    <Switch>
         <Route path="/test/:id">
              <Page />
         </Route>
    </Switch>
</BrowserRouter>

当我从/page/test/1切换到/page/test/2时,Page组件将不会重新呈现。我知道不会调用componentDidMount方法,但我想重新渲染Page组件。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

如果您使用的是React v16.8或更高版本,请尝试这样

import React, { useEffect } from "react";

const Page = (props) => {
  useEffect(() => {
    //Your code comes here to fetch the data from API
 }, [props.match.params.id]);

  return (<div>Layout</div>);
}
export default Page;