反应-父级版式取决于子级内容

时间:2018-08-01 18:25:06

标签: reactjs higher-order-components

我有一种情况,父母上课取决于孩子们是否有满足感。

 <div className="parent">
    <div className="child1"></div>
    <div className="child2"></div>
    <div className="child3"></div>
 </div>

例如,如果child1是唯一具有内容的子级,则父类应为“ a”,如果child1和child2具有内容,则父类应为“ ab”,依此类推。每个子级都保持自己的状态,表示子级可以从内容开始,直到状态改变才结束。我正在寻找使用高阶组件和引用来解决此问题的方法,但尚未找到理想的解决方案。想知道是否有构建模式可以解决此问题。

1 个答案:

答案 0 :(得分:0)

我对传统React的理解表明,如果父组件依赖于子组件的状态,那么该状态变量实际上应该由共享祖父母维护,如下所示:

<Grandparent> //Maintains State
    <Parent> // receives Grandparent state and state manipulation functions as props
        <Child 1> // receives Grandparent state and state manipulation functions as props (via Parent)
        <Child ...n> // same as child one.

您将最终一直将定义为方法的函数传递给方法,因此触发的更改可能会影响on的状态变量,并且将props传递给新的对象。

在树上传递函数和上下状态可能会变得混乱,因此,根据对树的级别数和传递的状态数,可以看一下redux来简化流。 Redux在React层次结构的外部 中充当状态容器,使通用状态变量易于在树的任何级别上访问。