在JSX中使用React.cloneElement()

时间:2018-02-06 12:40:54

标签: javascript reactjs jsx

我想知道如何在JSX中使用cloneElement语法。我阅读了文档并尝试了一些示例,但仍然没有任何线索。

class ABC extends React.Component {
  constructor(props){
    super(props)
}
render() {
  return(
  <div>
    {React.cloneElement()}
  </div>
  )
}
}

1 个答案:

答案 0 :(得分:7)

根据 documentation

  

克隆并使用element作为起始返回一个新的React元素   点。结果元素将具有原始元素的道具   与新道具合并浅。新的孩子将取代   现有的孩子。 key和ref将从原始元素中获取   保留。

cloneElement的一个有效用例是当你希望将一个/多个道具添加到父项传递子元素的元素时。你只需映射所有子元素并通过添加新的道具来克隆它们。

return (
  <div style={styles}>
    {React.Children.map(children, child => {
      console.log(child);
      return React.cloneElement(child, {newProp}, null);
    })}
  </div>
)

检查 working demo