首页 > 解决方案 > 如何处理多个组件更新相同的状态?

问题描述

我有一个由不同组件组成的页面,所有这些组件都依赖于相同的 redux 状态。

我应该如何处理状态的检查和更新?状态正在设置/检查用户是否已通过身份验证,如果没有,它将调用一个 API(副作用),该 API 将对 API 进行身份验证。

我不希望发生的是所有这些组件都尝试使用相同的请求集调用 API,因为它们基本上是在检查/更新相同的东西。但是这些组件取决于该状态。

在这种情况下处理状态的常见/流行方法是什么。

标签: react-redux

解决方案


您需要根据响应数据调度操作并相应地设置状态,只需在您使用此状态的所有屏幕中应用 onFocusListener 即可。每次当您移动到特定屏幕时,它都会根据新状态进行更新。

这是侦听器的示例

  useEffect(() => {
const loads = props.navigation.addListener('didFocus', () => {
});
return () => {
    loads
}}, [props.navigation]);

推荐阅读