2016-07-15 47 views
0

是否有可能在React中執行cloneNode?React cloneNode - 複製

在其基本層面上,我想要做的是點擊組件,然後讓它爲該組件製作副本供我使用。我最終想做一個簡單的副本拖動,然後刪除,但我只是想知道如何做一個組件/元素的克隆。

有沒有更好的方法來解決這個問題?該組件將是靜態的,然後通過簡單的單擊就可以克隆它或動態創建以供使用。

var TestChild = React.createClass({ 
    onClick: function (e) { 
     this.props.onClick(e); 
    }, 
    render: function() { 
     return (
      <div onClick={this.onClick}>Test Item</div> 
     ) 
    } 
}); 

var TestParent = React.createClass({ 
    onClick: function (e) { 
     // cloneNode 
    }, 
    render: function() { 
     return (
      <TestChild onClick={this.onClick} /> 
     ) 
    } 
}); 
+1

React有'cloneElement'方法 - https://facebook.github.io/react/docs/top-level-api.html#react.cloneelement,你可以嘗試使用它 –

回答

0

怎麼樣保持狀態父元素TestParent表示許多子元素TestChild現在怎麼樣應該有,像this.state.count,然後在父母的render方法,狀態映射到TestChild秒。而onClick函數只是遞增計數器。這裏是來自React文檔的example

+0

@fes通過調用'onClick'事件處理程序中的'this.setState'來更新'count'變量,並且'render()'函數將被自動調用以用新的'count'重新渲染組件。 –

+0

onclick組件被添加,但是有無論如何傳遞當前的鼠標事件並將其傳遞給新的組件?我想在組件上做一個mousedown(完成) - >創建新組件(在重新渲染後)(完成) - > mousedown現在在新組件上 - >現在我可以控制新組件。我一直在努力研究如何完成最後兩個步驟。 – fes