react-beautiful-dnd - 使用 react-Beautiful-dnd,如何在拖动开始之前更改可拖动尺寸(onBeforeCapture)
问题描述
这是我在 onBeforeCapture() 响应程序期间找到的用于检索正确的可拖动元素并编辑其尺寸的代码。在此响应程序期间更改尺寸符合文档。这似乎只适用于改变尺寸,其他问题是我使用的是 renderClone 方法,因此可拖动对象只是以不接近正确鼠标位置的巨大偏移进行拖动。dnd 也将放置占位符视为可拖动是原始的大尺寸。有没有办法纠正这个鼠标位置和占位符尺寸?我已经考虑在可拖动的内部元素上添加 mouseDown/mouseUp 处理程序,但这似乎也不起作用。
const cardSize = 140;
const draggableAttr = "data-rbd-drag-handle-draggable-id";
const getAttr = (key: string, value: string) => `[${key}=${value}]`;
const draggableQuery = getAttr(draggableAttr, update.draggableId);
const draggable = document.querySelector(draggableQuery);
draggable.setAttribute("style", `width: ${cardSize}px; height: ${cardSize}px;`);
解决方案
我注意到 onBeforeCapture 在 onDragEnd 之后触发(因此不正确地调整可拖动的大小),所以我创建了一些状态来记住最后一个 beforeCaptureResult 以及return
它是否等同于当前结果。
推荐阅读
- javascript - 如果数组为空,如何防止数组中的嵌套数据出错?
- nginx - $connection_time 在 nginx 中是什么意思?
- laravel - Vue Js中基于表字段制作动态表单的问题
- r - 基于列 R 更新名称
- css - 将多种动画效果合二为一
- node.js - 请代码帮帮我`CastError:模型“State”的路径“_id”处的值“”(类型字符串)转换为ObjectId失败`
- mysql - 如何使用 node.js 创建未使用的数据库 ID
- c# - 函数“FunctionName”的侦听器无法在 .net core azure 中启动
- amazon-web-services - AWS S3 Bucket giving 'policies must be valid JSON and the first byte must be '{'
- google-chrome - 在 Chrome 中绕过 VPN