使用第三方脚本安全地共享Redux状态

时间:2016-09-29 12:52:41

标签: reactjs react-redux

研究员,我对react-redux有疑问。我想知道与第三方脚本共享redux存储状态是好还是坏。目前,我们正在使用cookie向第三方脚本提供一些状态信息(非敏感状态信息)。但是,我们知道应用程序的真实来源是州树/商店。因此,为了与redux的核心原则保持一致,您有什么建议吗?

这是一个例子。因此,我们有一些遗留脚本需要与react-redux应用程序并行运行,并且它们当前正在执行之前读取一些cookie。例如,假设我们有一个名为'username'的cookie,它的值为'john'。第三方脚本读取该cookie,如果该值等于'john'则执行某些操作。

在内部,我们的react / redux应用程序使用reducers / actions读取/设置此cookie,但第三方脚本不是redux,只需要知道这个'name'值,如果它发生变化也会被通知。

我在想我们可以创建一些反应模块,它提供状态树的切片并使它们在窗口中全局可用。

似乎redux-watch库可能很有用:https://github.com/jprichardson/redux-watch

理想情况下,我们希望让这些第三方应用程序转换并遵循我们为新的react / redux应用程序实现的模式,但是,有时在大公司中事情并不那么简单,所以我们需要制作东西使用遗留代码库。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你不需要反应模块。您的第三方脚本可以简单地订阅商店以获取更新:

store.subscribe(() => {
  const username = usernameFromState(store.getState());
  // run the 3rd party code with the username
});

我不明白为什么这不应该成为一个问题。我认为第三方脚本甚至可以将操作发送到商店,正如您所说的商店"是应用程序的真实单一来源"。第三方脚本是该应用程序的一部分。