【发布时间】:2018-09-24 12:31:47
【问题描述】:
我目前正在使用 Redux、状态管理和 Firebase Cloud Messaging 构建一个 React Native 应用程序以进行实时通信。
在 Android you are required 的后台使用 FCM 创建名为 bgMessaging.js 的文件。
// @flow
import firebase from 'react-native-firebase';
// Optional flow type
import type { RemoteMessage } from 'react-native-firebase';
export default async (message: RemoteMessage) => {
// handle your message
return Promise.resolve();
}
我的问题是我需要在这里发送一个动作。我为此找到的唯一解决方案是导入我的商店并致电store.dispatch()。有人告诉我这是一种反模式,被认为是不好的做法。除了反模式,我还能做什么?
编辑: 马克·埃里克森本人非常友善,gave his opinion on this topic。谢谢马克!
【问题讨论】:
-
React 组件之外的 redux 使用示例很少,因为它们通常是高级用例(如您自己的)。我认为这将是反应组件中的反模式,而不是纯 JS 代码之外的反模式。你有关于这是一种不好的做法的消息来源吗?
-
afaik 反模式正在使 redux 存储成为单例,这主要是因为它使编写测试变得更加复杂,因为很难为特定测试隔离存储实例。
标签: react-native redux react-redux firebase-cloud-messaging react-android