【发布时间】:2020-05-14 03:45:16
【问题描述】:
我有一个窗口,我只想从顶部栏拖动,类似于...一个 GUI 窗口。
我有一个基于顶部栏上的 OnMouseDown 和 OnMouseUp 事件的状态更新。但是,更新似乎很慢。它仅在我尝试拖放它时才有效。似乎在奇怪的尝试 OnMouseUp 没有正确更新,或者更新缓慢(打印语句与实际值不同)。当用户单击contentTopBar 时,是否有更好的方法来更新此处的状态?
class GenericWindow extends Component {
constructor(props){
super(props)
this.state = {draggable:true}
}
render(){
return( <motion.div
drag={this.state.draggable}
dragMomentum={false}
>
<div
className="contentTopBar homeBar"
onMouseDown={()=>{this.setState({draggable:true});console.log(`should be TRUE, is: ${this.state.draggable}`)}} // ** mouse down
onMouseUp={()=>{this.setState({draggable:false});console.log(`should be FALSE, is: ${this.state.draggable}`)}} // ** mouse up
>
{this.props.title}
</div>
<div className="ContentWindowContent">
{this.props.children}
</div>
</motion.div>
)
}
}
编辑:注意我使用的是成帧器运动模块进行拖动,因此是motion.div。
【问题讨论】:
标签: javascript reactjs