javascript – 如何从不知道Redux的服务调度动作?

前端之家收集整理的这篇文章主要介绍了javascript – 如何从不知道Redux的服务调度动作?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有一个不知道Redux的地理定位服务,我将其配置如下: @H_403_2@backgroundGeoLocation.configure( callback // will be called with an argument when the coordinates change );

什么是最简单的方法使服务回调调度Redux操作而不从单独的模块导出存储并使用store.dispatch()(因为这将是一个单例)?

解决方法

如果要将某些值传递给JavaScript中的某段代码,则需要使用函数.
例如,@H_403_2@function createGeoLocationService(store) { let backgroundGeoLocation = new BackgroundGeoLocation() backgroundGeoLocation.configure(coordinates => { store.dispatch({ type: 'UPDATE_COORDINATES',coordinates }) }) return backgroundGeoLocation }

现在,无论您在何处创建商店,都要创建该服务:

@H_403_2@let store = createStore(reducer) let backgroundGeoLocation = createGeoLocationService(store)

如果您需要在组件中访问它,您可以:

>将其设为单身(是的,不是您想要的,但对于仅限客户的应用来说,这是一个有效的选项)
>通过道具明确传递它(可能会变得单调乏味,但这是最直接和明确的方式)
>通过上下文隐式传递它(非常简单,但你将处理unstable API that is subject to change,所以这是你的良心)

猜你在找的JavaScript相关文章