Невозможно присвоить «MyComponent», поскольку он не является переменной - PullRequest
1 голос
/ 15 апреля 2019

Я хотел бы одновременно перетаскивать и использовать 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;

Я обнаружил, что это возможно в здесь . Тем не менее, в моей среде я получаю эту ошибку:

Cannot assign to 'MyComponent' because it is not a variable [.ts(2539)]

Я использую TypeScript (.ts). Может ли это быть проблемой? Если это так, как можно добиться того же в TypeScript?

1 Ответ

1 голос
/ 15 апреля 2019

вместо того, чтобы пытаться переназначить ваше имя класса, просто используйте новые имена:

class MyComponent extends ...

const MyComponent2 = DragSource(...)(MyComponent);
const MyComponent3 = DropTarget(...)(MyComponent2);
export default MyComponent3;

Единственное, что имеет значение, это то, что вы в конечном итоге export default версия, которую вы хотите, чтобы вызывающие абоненты использовали при импорте MyComponent.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...