我正在查看react-dnd的示例。我以前从未使用过的东西是使用ES6语法将prop传递到HOC函数中。

@DropTarget(props => props.accepts, boxTarget, (connect, monitor) => ({
  connectDropTarget: connect.dropTarget(),
  isOver: monitor.isOver(),
  canDrop: monitor.canDrop(),
}))
export default class TargetBox extends Component {
  ...
}


如何使用ES6语法实现此目的?当我像这样传递参数时,会得到未定义的道具。

export default DropTarget(props.accepts, boxTarget, collect)(TargetBox);

最佳答案

这是一个decorator,并将其翻译为:

export default DropTarget(props => props.accepts, boxTarget, (connect, monitor) => ({
    connectDropTarget: connect.dropTarget(),
    isOver: monitor.isOver(),
    canDrop: monitor.canDrop(),
}))(TargetBox);

07-28 07:12