0

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

    draggedItemSpec {
        beginDrag(props, monitor, connect)
        {
       /*how do I access component state here? 
Why there is a limitation that when creating dragged object, you should only use props?*/
        }
    }
4

1 回答 1

0

beginDrag 的第三个参数实际上是“组件”(根据:http ://react-dnd.github.io/react-dnd/docs-drag-source.html ),它提供了对 React 组件实例的访问权限掉进去,所以在你的 beginDrag 中你实际上可以做

draggedItemSpec {
    beginDrag(props, monitor, component)
    {
      const currentState = component.getState();
      // Do things with that state
    }
}
于 2017-08-17T12:44:17.970 回答