reactjs - 与 3rd 方脚本安全地共享 Redux 状态

标签 reactjs react-redux

与第 3 方脚本共享 redux 存储状态是否有好的/坏的做法?目前,我们正在使用 cookie 向 3rd 方脚本提供一些状态信息(非敏感状态信息)。但是,我们知道该应用程序的真实来源是 redux 商店。因此,为了与 redux 的核心原则保持一致,您有什么建议吗?

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

在内部,我们的 react/redux 应用程序使用 reducers/actions 读取/设置此 cookie,但第三方脚本不是 redux,只需要知道此“名称”值,并在其更改时收到通知。

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

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

最佳答案

为此您不需要 react 模块。您的 3rd 方脚本可以简单地订阅商店以获取更新:

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

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

关于reactjs - 与 3rd 方脚本安全地共享 Redux 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39770893/

相关文章:

javascript - Typescript 样式组件错误 : "Type ' { children: string; }' has no properties in common with type ' IntrinsicAttributes'.“

javascript - React.js - 如何使用来自子项的参数在父项中执行函数

javascript - 将 onClick 传递给 Material-ui 按钮 - 仅有效一次

reactjs - 我可以在不触发重新渲染的情况下更新 redux 存储中的属性吗?

javascript - 如何更改按钮单击 react 中的变量值

javascript - React-Redux 如何根据成功条件调用新的调度

react-native - 派送后如何更新状态

reactjs - 问题 : React-Native - Keyboard closes on each keystroke for TextInput

javascript - 看不到我使用 React-dnd 拖动的项目

javascript - 分派(dispatch) redux 操作时 JS 执行乱序