Javascript 如何使用React.cloneElement克隆多个子级?
我尝试像这样克隆React元素,将父道具传递给它们(本例中未指定道具): 但是,这将返回以下错误: 未捕获不变冲突:元素类型无效:应为 字符串(用于内置组件)或类/函数(用于复合 组件)但得到:未定义 如果只有一个子元素,或者如果我传递React.cloneElement(this.props.children[0],null),则不会出现错误,并呈现所需的元素Javascript 如何使用React.cloneElement克隆多个子级?,javascript,reactjs,Javascript,Reactjs,我尝试像这样克隆React元素,将父道具传递给它们(本例中未指定道具): 但是,这将返回以下错误: 未捕获不变冲突:元素类型无效:应为 字符串(用于内置组件)或类/函数(用于复合 组件)但得到:未定义 如果只有一个子元素,或者如果我传递React.cloneElement(this.props.children[0],null),则不会出现错误,并呈现所需的元素 如何克隆多个元素?childrenprops是一个不透明的结构,它可以是未定义的、数组或单个元素。您应该使用映射到子结构上: cons
如何克隆多个元素?
children
props是一个不透明的结构,它可以是未定义的、数组或单个元素。您应该使用映射到子结构上:
const style = this.props.style
React.createElement('div',
{ style },
React.Children.map(this.props.children, (child => React.cloneElement(child, { style })))
)
最小的注释-结尾处缺少结束符)
注释:如果子项
是单个元素或片段
,它将不会被遍历。@GreeKatrina如果它是单个元素(不是片段),当然会被遍历。@asliwinski文档说不会。@GreeKatrina您一定在阅读不同的文档,绝对不是您链接到的内容:“注意,如果子元素是一个片段,它将被视为单个子元素,并且不会被遍历。”没有任何关于单个元素不会被遍历的内容。
const style = this.props.style
React.createElement('div',
{ style },
React.Children.map(this.props.children, (child => React.cloneElement(child, { style })))
)