如何在反应路由器内的任何路由上调用函数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在反应路由器内的任何路由上调用函数?相关的知识,希望对你有一定的参考价值。

我正在构建一个react / redux / thunk应用程序。我有一些工作和渲染组件的路线。目前我有一个Routes文件,其中包含我在ReactDOM中渲染的所有路线。

它是一个商店应用程序,我想与我的服务器同步,以便当应用程序加载时,它从数据库加载应用程序与正确的东西。因此,如果有人在他们的篮子里有产品,我希望他们在应用程序加载时放在篮子里

我在努力想办法做到这一点。我想在componentDidMount中调用它,但只调用特定组件,所以如果用户要打不同的路线,那么它就不会被调用,并且篮子不会被同步。那么有没有办法在每次路线变更时调用一个函数?或者我问题的另一种解决方案?

答案

如果购物车信息是在每个页面/路线上使用的东西,您应该有一个组件可以加载/包含在每个路径上 - 比如标题 - 您可以在其中执行调用以获取购物车数据(如果尚未加载) )。

<Switch>
  <Route path='...' component={Comp1} /> // <-- wont load cart info
  <Fragment>
    <ComponentThatFetchesCartInfo/> // <-- this will get included in every route inside Fragment
    <Route path='...' component={comp2}/>
    <Route path='...' component={comp3}/>
  </Fragment>
</Switch>

以上是关于如何在反应路由器内的任何路由上调用函数?的主要内容,如果未能解决你的问题,请参考以下文章

如何调试反应路由器未在 url 更改时加载组件

检测反应路由器中的先前路径?

路由更改时对获取数据做出反应

如何在反应路由器dom v4中获取组件中的参数?

反应路由器 v4 onUpdate

无法将类作为函数调用,如果我使用 es6 格式,React 路由器会在控制台中显示错误