如何在DragSource规范中访问组件状态

时间:2017-07-07 23:32:21

标签: reactjs react-dnd

我有一个组件来维护状态中的对象列表。我打算让这个组件成为一个Drag Source。当Drag事件开始时,我希望拖动组件状态中的对象列表。 问题是Drag Source Spec对象的方法beginDrag将组件的prop作为参数。这意味着可以拖动的对象必须从props派生。

@{
    DateTime StartTime = DateTime.Now;
    System.Diagnostics.StopWatch Watch = new System.Diagnostics.StopWatch();
    @Html.Raw("<p>start time is: " + StartTime.ToString() + "</p>");
    Watch.Start();
    for (int i = 0; i < 1000000; i++)
        {

        if (i % 100000 == 0)
        {
             @Html.Raw("<p>" + i.ToString() + "i</p> <br />");  
        }

    }
    Watch.Stop();
    DateTime EndTime = DateTime.Now;
    @Html.Raw("<p>End time is " + EndTime.ToString() + "</p>");
    @Html.Raw("<p>Execution time is: " + Watch.Elapsed.ToString() + "</p>");
}

1 个答案:

答案 0 :(得分:0)

beginDrag的第三个参数实际上是'component'(per:http://datatables.net/tn/7),它提供了对放入的React组件实例的访问,所以在你的beginDrag中你实际可以做到

draggedItemSpec {
    beginDrag(props, monitor, component)
    {
      const currentState = component.getState();
      // Do things with that state
    }
}