コンポーネントをドラッグしようとすると、const として宣言されているときに、レンダー関数内で propType を宣言できなかったことがコンソールに通知され{ connectDragSource, isDraggin } = this.props;
ます。KnightSource オブジェクトから is Dragging プロパティを削除すると、このエラーが修正されることに気付きましたが、その理由はわかりません。
import React, { Component, PropTypes } from 'react';
import { ItemTypes } from './Constants';
import { DragSource } from 'react-dnd';
const knightSource = {
beginDrag(props) {
return {};
},
isDragging(props){
return(console.log('dragging'))
}
};
function collect(connect, monitor) {
return {
connectDragSource: connect.dragSource(),
isDragging: monitor.isDragging()
}
}
class Knight extends Component {
render() {
const { connectDragSource, isDragging } = this.props;
return connectDragSource(
<div style={{
opacity: isDragging ? 0.5 : 1,
fontSize: 100,
fontWeight: 'bold',
cursor: 'move',
color: isDragging ? 'blue' : 'green'
}}>
♘
</div>
);
}
}
Knight.propTypes = {
connectDragSource: PropTypes.func.isRequired,
isDragging: PropTypes.bool.isRequired
};
export default DragSource(ItemTypes.STUDENT, knightSource, collect)(Knight);