从传奇之外向Redux商店调度

时间:2019-05-24 21:41:27

标签: reactjs redux redux-saga

我有一个传奇人物,可以初始化分析提供程序,而该提供程序完全位于redux上下文之外。但是,Redux会定期将更新的身份验证令牌推送到该分析提供商。

(是的,我知道分析代码可能应该存在于传奇流中,但是请相信我,我认为它已经存在,并且现在无法进行重构)

function* setupAnalyticsProvider(response: any): any {
     // get some global session data  
     setupAnalytics(data) 
}

export function* refreshTokenIfNecessary() {
  // syncs new JWT token with redux state 
  updateAnaltyicsProviderWithNewToke(token)
}

问题是我希望分析代码定期请求刷新令牌。为此,我想传递一个回调,该回调使Analytics代码可以调度一个操作来触发refreshTokenIfNesscary()传奇。

   function* setupAnalyticsProvider(response: any): any {
         // get some global session data  
         setupAnalytics(data) 
         setAnaltyicsRefreshCallback(() => {
            // Dispatch action 
        })
    }

无论如何,我们是否有兴趣使用商店分配方法,或者使用Saga-Channels实现此目的?

1 个答案:

答案 0 :(得分:0)

对于解析代码的任何定期执行,您都必须为其创建一个回调以使其流动,如果重构存在问题,请使用Event通道套接字发出,打开并产生回调。