我希望使用react-dnd同时进行拖放操作
// ... imports ...
class MyComponent extends Component {
render () {
const { connectDragSource, isDragging, connectDropTarget, isOver } = this.props
return connectDragSource(connectDropTarget(
<div style={{ opacity: isDragging ? 0.5 : 1 }} >
Just an example
</div>
))
}
}
MyComponent = DragSource('MyComponent', elementSource, (connect,
monitor) => ({
connectDragSource: connect.dragSource(),
isDragging: monitor.isDragging()
}))(MyComponent);
MyComponent = DropTarget('MyComponent', elementTarget, connect => ({
connectDropTarget: connect.dropTarget(),
}))(MyComponent);
export default MyComponent;我发现这在here中是可能的。然而,在我的环境中,我得到了这个错误:
Cannot assign to 'MyComponent' because it is not a variable [.ts(2539)]我正在使用TypeScript (.ts)。这会是问题所在吗?如果是这样,如何在TypeScript中实现同样的功能呢?
发布于 2019-04-16 00:00:17
不要试图重新分配类名,只需使用新名称:
class MyComponent extends ...
const MyComponent2 = DragSource(...)(MyComponent);
const MyComponent3 = DropTarget(...)(MyComponent2);
export default MyComponent3;唯一重要的是,当调用者导入MyComponent时,您最终需要export default您希望调用者使用的版本。
https://stackoverflow.com/questions/55693034
复制相似问题