您可能偶然发现了堆叠 ES7 装饰器的示例中的部分:
@DropTarget(ItemTypes.CARD, cardTarget, connect => ({
connectDropTarget: connect.dropTarget()
}))
@DragSource(ItemTypes.CARD, cardSource, (connect, monitor) => ({
connectDragSource: connect.dragSource(),
isDragging: monitor.isDragging()
}))
这里给出了在 ES5 或 ES6 中实现等效代码的解决方案 - http://gaearon.github.io/react-dnd/docs-faq.html - 使用 lodash 流函数来组合功能 - 但是有一点示例代码中缺少数组括号的错误。因此正确的代码应该是:
export default flow([
DragSource(/* ... */),
DropTarget(/* ... */)]
)(YourComponent);
PS 即使激活了第 1 阶段,Babel REPL 似乎也不支持装饰器,我收到以下错误:
repl: Decorators are not supported yet in 6.x pending proposal update.
3 | connectDropTarget: connect.dropTarget()
4 | }))
> 5 | export default class Card extends Component {
| ^
6 | render() {
7 | return <div>asdas</div>
8 | }