【发布时间】:2021-09-21 08:09:55
【问题描述】:
由于各种原因,我的工作场所目前正在尝试将 React/Redux 引入我们的项目中。我们的项目使用 Shopify 和它的 Liquid 模板以及 jQuery。他们想要迁移到 React,到目前为止,我们一直在通过查找特定 ID 并以这种方式注入 React 组件来注入 React。
由于这个原因,并且因为我们现在需要一个存储来保存和呈现数据,所以我遇到了一个奇怪的问题。如果我用 Provider 和 store 包装这些注入组件中的每一个,我基本上可以让每个组件都有自己的 store,但这根本没有帮助,因为它几乎是在模仿本地状态。
有没有办法让我“连接”并与多个组件共享商店?
我曾考虑像通常情况那样包装整个项目,但这样做会/应该使 Liquid 无用。
下面是一个例子:
import ReactDOM from "react-dom";
import React from "react";
import attrToProps from "../../../partials/data-attribute-to-props.js";
import FavoritesToggler from "./index.js";
import store from "./../../Store/store"
import { Provider } from "react-redux"
const rootEl = document.getElementById("fav-container-react");
if(rootEl) {
const props = attrToProps(rootEl.attributes);
rootEl && ReactDOM.render(<Provider store={store}><FavoritesToggler {...props} /></Provider>, rootEl);
}
这被注入到一个包含 'fav-container-react' id 的 div 中。
但我们目前有几个这样的,我想知道如何让它们连接到同一个商店。
任何想法都将不胜感激,包括可能的架构变化(我们需要“显示进度”才能继续获得资金,因此不能选择启动新项目。这意味着我需要一个解决方案能够不断将遗留代码更新为 React)
【问题讨论】:
标签: javascript reactjs redux store redux-toolkit