繁体   English   中英

react.js中的长按和拖动事件

[英]long press and drag event in react.js

我想使用反应实现以下交互。 但我不知道要使用什么事件。

在此处输入图像描述

这是长按和拖动。 但我找不到任何参考资料、示例或库来继续。 我只设法做一个悬停效果

https://fiddle.jshell.net/8wsr7xa1/

<div>
    {items.map((obj,i) =>  
        <div 
        key={i} 
        style={this.state.active === obj ? 
        {backgroundColor: 'yellow'} : {}} 
        onMouseEnter={this.onMouseEnter.bind(this, obj)}>
        {obj}
        </div>
     )}
</div>

从您拥有的日历来看,我假设您在灰色的日子应用了某种类型的条件(不应选择它们)。 归功于 RoshanJossey,他为长按创建了一个反应事件列表器,具有可编辑的阈值https://codesandbox.io/s/uselongpress-oekx2?file=/src/useLongPress.js你应该为你的日历 div 提供这个事件(longClick)并且状态默认为 false

const [isLongClickTriggered, setIsLongClickTriggered] = useState(false)

每当注册长点击事件时,您都应该将此状态更改为 true。 之后,只要未注册另一个点击,您就可以在您的演示启动时在悬停时选择日历 div。 被选中的日历 div 也可以单独存储。

const longPressEvent = useLongPress(onLongPress, onClick, defaultOptions);
.
.
.
<div>
    {items.map((obj,i) =>  
        <div 
        key={i} 
        style={this.state.active === obj ? 
        {backgroundColor: 'yellow'} : {}} 
         {...longPressEvent}>
        {obj}
        </div>
     )}
</div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM