【问题标题】:React Redux append componentsReact Redux 附加组件
【发布时间】:2016-09-11 06:48:19
【问题描述】:

我有一个我正在工作的项目,它是一个 HTML 页面构建器。用户可以从菜单中从预先设计的 HTML 页面部分(页眉、滑块、内容块、页脚等)列表中进行选择,然后将它们拖放到画布上以构建网页。最终结果是一个包含静态网站的可下载 zip 文件。

到目前为止,我的应用程序布局如下所示:

我已经涵盖了第 1,2 和 3 部分。第 4 部分,滑出式抽屉,包含 HTML 部分,单击时我想将相应的组件附加到页面的主要区域,此过程将重复,直到网页构建完成。然后可以编辑每个组件并最终保存为一个页面。

我正在寻找关于如何使用 React/Redux 将完整组件附加到主区域 onclick 的建议?

我假设我调度动作/reducer 引用一个组件,但我如何实际添加和跟踪附加到主区域的组件?使用 jQuery 这将是一个简单的 jQuery .load() 但在 React/Redux 我不知道,也许我可以使用 React Router 使用一个技巧?

谁能帮我指出正确的方向?进一步阅读等。

非常感谢。

【问题讨论】:

    标签: javascript reactjs redux redux-thunk


    【解决方案1】:

    简单地说,您将希望将某种类型的 ID 映射到每个组件,然后将这些 ID 存储在商店中,例如 mainArea = [id1, id6, id12] 等。然后您的 <MainArea /> 组件只需迭代道具并引用您建立的映射到加载正确的组件。

    编辑:阐明如何利用组件图。

    这大致就是您要查找的内容。假设上面的 id 是我们的组件。在我们的代码库中的某个地方,我们会将这些 id 映射到组件:

    const Component1 = React.createClass(...)
    const Component6 = React.createClass(...)
    const Component12 = React.createClass(...)
    
    const componentMap = {
      id1: Component1,
      id6: Component6,
      id12: Component12,
    }
    

    然后,当您的 <MainArea /> 组件遍历它存储的 id 时,它会从上面的映射中提取相应的组件并渲染它。

    【讨论】:

    • 感谢您的回复,非常感谢。创建地图是有道理的,我想了解我如何使用动作/减速器来实现这一点,但你能否进一步解释我将如何将组件加载到 <MainArea /> 我正在为将整个组件加载到另一个组件的概念而苦苦挣扎。
    • 好的,我想我明白了。我会试一试。再次感谢布莱恩的解释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    • 2017-08-18
    • 2020-09-18
    • 2017-07-24
    • 2021-11-15
    相关资源
    最近更新 更多