javascript - 有没有办法使用 react-dnd 返回放置目标的类名?
问题描述
假设我有这个组件,它代表一个放置目标。
import { useDrop } from 'react-dnd';
import './css/DraggableGameSlot.css';
type DraggableGameSlotProps = {
className: string,
text: string
}
function DraggableGameSlot(props: DraggableGameSlotProps) {
const [{isOver}, drop] = useDrop(() => ({
accept: "image",
collect: (monitor) => ({
isOver: !!monitor.isOver(),
})
}))
return (
<div className={`draggable-game-slot ${props.className}`} ref={drop}>
<span>Drop here</span>
</div>
)
}
export default DraggableGameSlot;
当有一个物品掉在div上时,我想获取div的className(console.log就可以了,我自己实现我想要的逻辑)
我应该如何修改代码以获得此功能?
解决方案
根据react-dnd useDrop 文档,useDrop
钩子返回
返回值数组
[0] - Collected Props
: 一个包含从 collect 函数收集的属性的对象。如果未定义 collectfunction,则返回一个空对象。[1] - DropTarget Ref
: 放置目标的连接器函数。这必须附加到 DOM 的放置目标部分。
所以,拥有DropTarget Ref
你应该能够做一些事情,比如drop.current.classList
获取放置目标 html 元素的类。
推荐阅读
- python - 如何在引用其他行上的数据时对 DF 中的每一行执行计算?
- node.js - Jest 如何测试 Express API POST 请求?
- laravel - Laravel 数据库迁移列更改为 Unique 和 Nullable 导致错误
- azure - 将 NSG 应用于子网时,不需要 Azure ARM 模板“copyIndex”
- apache - .htaccess 规则 FilesMatch 到所有子文件夹(子文件夹是随机创建的)
- c# - 尝试与 Lex 交互时出现 424 错误
- sql - 如何根据一列排序,然后再次使用另一列排序输出?
- processing - 正在处理的纸牌游戏套装
- python - 为什么我对 OVH 的 API 调用在我分配的 ipBlock 上不起作用?
- kubernetes - Kubernetes liveness/readiness 问题和 json 返回