Javascript 如何在react router(redux)中为所有全局状态更改添加默认加载条?

Javascript 如何在react router(redux)中为所有全局状态更改添加默认加载条?,javascript,reactjs,redux,react-router,react-redux,Javascript,Reactjs,Redux,React Router,React Redux,因此,在我的react/redux应用程序中,我使用。我想添加一个简单的“顶栏”加载动画,用于任何路线(例如LOCATION\u CHANGE)序列 我知道这样的事情,但不确定如何将它们绑定到react router redux,因为我只是导入一个预先制作的减速器,例如: import { routerReducer } from 'react-router-redux' 如何将加载动画绑定到这个减速机中,是否有现成的解决方案?似乎是一个常见的用例。我宁愿不必创建另一个侦听react rout

因此,在我的react/redux应用程序中,我使用。我想添加一个简单的“顶栏”加载动画,用于任何路线(例如
LOCATION\u CHANGE
)序列

我知道这样的事情,但不确定如何将它们绑定到
react router redux
,因为我只是导入一个预先制作的减速器,例如:

import { routerReducer } from 'react-router-redux'
如何将加载动画绑定到这个减速机中,是否有现成的解决方案?似乎是一个常见的用例。我宁愿不必创建另一个侦听
react router redux
操作的reducer,这似乎有点骇人…

我已经查看了文档,我看到了两种可能的实现:

1.只需通过
history收听增强的历史记录。收听
从文档中:

,例如用于分析

只需通过history.listen收听增强的历史记录。这需要 在一个函数中,该函数将在存储更新时接收位置。 这包括在商店中执行的任何时间旅行活动

在这里,您可以跳过创建一个新的减速器,而只创建一个加载器组件。在组件的
componentDidMount
中,您可以向组件订阅路由器历史更改,并在组件内部处理所有更改。以下是订阅功能:

const history = syncHistoryWithStore(browserHistory, store);
history.listen(location => { // handle showing/hiding loader here });
2.创建一个特定的reducer,用于侦听操作类型并更新其标志 从文档中:

位置更改:一种操作类型,您可以在减速器中侦听,以获得路线更新的通知。对历史记录进行任何更改后激发


在这种情况下,您必须创建一个订阅了减速器标志的加载器组件。您可以在那里显示装载指示器。您可以在几毫秒后通过调度一个新操作将其隐藏,该操作将重置减速器的标志。

Wow,感谢您提供如此详细的响应。如果浏览器历史API是文档建议响应导航事件的方式,我想这就是我要做的。再次感谢。不客气!:)如果您还有其他问题,请随时提问。如果答案对你有帮助,你也可以将其标记为已接受!谢谢!:)