我正在尝试在我的 React/Redux/redux saga 应用程序中通过 Pusher 实现一个消息传递库 Chatkit,我是 Redux 的新手。连接到 chatkit 的代码如下所示:
const chatManager = new ChatManager({
instanceLocator: 'v1:us1:80215247-1df3-4956-8ba8-9744ffd12161',
userId: 'sarah',
tokenProvider: new TokenProvider({ url: 'your.auth.url' })
})
chatManager.connect()
.then(currentUser => {
console.log('Successful connection', currentUser)
})
.catch(err => {
console.log('Error on connection', err)
})
我需要全局存储 chatManager 和 currentUser 对象(它们是具有附加功能的复杂类的实例),以便稍后我可以再次使用它们来加入房间、订阅事件等。
我的第一个想法是我应该将它存储在 Redux 中,因为它现在是我的“全局存储”,但后来我意识到它可能无法工作,因为它不是我从存储中取回的原始对象,它会估计是克隆人。然后我读到显然只有普通对象应该存储在 Redux 中。
那么,不是普通对象但需要全局存储的东西在哪里?我不想将它们放在 window 对象上,因为我可能会将其转换为 React Native 应用程序,无论如何它看起来很混乱。