2016-07-15 8 views
0

ReactでcloneNodeを実行することは可能ですか?React cloneNode - コピーを作成

基本的なレベルで、私がやりたかったのは、コンポーネントをクリックしてから、そのコンポーネントをコピーして使用することでした。私は最終的に単純なコピーをドラッグしてからドロップしたいのですが、コンポーネント/要素のクローンを行う方法を知りたがっています。

これについてもっと良い方法がありますか?コンポーネントは静的になり、単純なクリックによってそのコンポーネントが複製されるか、動的に作成されて使用されます。親のrender方法では、その後、this.state.countのように、現在、多くの子要素TestChildがどうあるべきか示す親要素TestParent状態を保っについて、TestChild sの状態をマップ何

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

。そして、onClick関数は単にカウンタをインクリメントします。 React docsのexample

+0

@fesは、 'onClick'イベントハンドラで' this.setState'を呼び出して 'count'変数を更新するだけです。新しい' count'を使ってコンポーネントを再描画するために 'render()'関数が自動的に呼び出されます。 –

+0

onclickコンポーネントは追加されますが、現在のマウスイベントを渡して新しいコンポーネントに渡すことはできますか?新しいコンポーネントが作成されました(再レンダリング後)(完了) - > mousedownが新しいコンポーネントになりました - >新しいコンポーネントを制御できるようになりました。私は最後の2つのステップを実行する方法を試してみました。 – fes

関連する問題