【问题标题】:Reactjs(v.15) make sibling component as childrenReactjs(v.15) 将兄弟组件作为子组件
【发布时间】:2019-04-06 15:22:58
【问题描述】:

我有一个像下面这样的组件层次结构(来源),我的要求是,在渲染时想在某些属性上将其转换为Target,这里我假设为flag

来源:

<Parent>
   <Xyz flag={false}/>
   <One flag={true}/>
   <Two flag={true}/>
   <Three flag={true}/>
</Parent>

目标:

<Parent>
   <Xyz>
      <One />
      <Two />
      <Three />
   </Xyz>
</Parent>

我的做法:

Parent的侧面渲染中

render() {
    const xyz = this.props.children.filter((children) => !children.props.flag);

    const kids = this.props.children.filter((children) => children.props.flag);

    const clonedXyz = React.cloneElement(xyz, [{...props}], [...kids]);
    return(
        <div>
            {clonedXyz}
        </div>
        );
}

在反应 v15.x 中抛出错误预期的类/函数但得到 undefined

【问题讨论】:

  • 这听起来像是XY problem,如果您退后一步并解释您是如何达到这个(相当奇怪的)要求的,它可能会帮助我们和您更多。

标签: javascript reactjs react-redux


【解决方案1】:

知道了,https://codesandbox.io/s/7ww8n4my9x

应该是React.cloneElement(xyz[0], [{...props}], kids)

【讨论】:

    猜你喜欢
    • 2017-06-13
    • 2019-09-17
    • 2021-06-10
    • 2016-08-21
    • 2018-10-08
    • 2017-11-11
    • 2020-01-10
    • 2017-09-12
    • 2023-03-19
    相关资源
    最近更新 更多