reactjs - 抓取网格节点周围的元素时的ReactJS消失
问题描述
我试图在我的网格周围移动这个绿色节点,但是当我移动它时,第一行中的最后一个节点消失了。
这是我的代码:
const onDrop = (e) => {
e.preventDefault();
console.log(e.target.id)
let data = e.dataTransfer.getData("text");
e.target.appendChild(document.getElementById(data));
}
const onDragStart = (e) => {
e.dataTransfer.setData("text", e.target.id);
}
const onDragOver = (e) => {
e.dataTransfer.setData("text", e.target.id);
}
return (
<div
onDrop={(e) => (onDrop(e))}
onDragOver={(e) => (onDragOver(e))}
>
<div
id={`${row}-${col}`}
className={`node ${classes}`}
draggable={draggAble}
onDragStart={(e) => {
if (draggAble) {
onDragStart(e)
} else {
e.preventDefault()
}
}}
/>
</div>
)
而这整个 div 在另一个具有此代码的 div 中。
<div className="Grid" onDrop={(e) => (onDrop(e))} onDragOver={(e) => (onDragOver(e))}>
这是我的小提琴片段的链接https://jsfiddle.net/Efiqqe/2tjs4v3f/1/
每个代码都在不同的组件中
你有什么技巧可以让最后一个节点停止消失吗?
感谢您的回答,如果这篇文章不够清楚,我很抱歉。
解决方案
0-0
您每次都移动孩子,因此您必须将其添加到第一个框中。
const div = document.createElement('div');
div.id = 'temp-0-0';
div.className = 'node';
div.draggable = false;
if(!document.getElementById('temp-0-0')) {
document.getElementById('node-0-0').appendChild(div);
}
JSFiddle:https ://jsfiddle.net/gupay0rc/2/
推荐阅读
- highcharts - Highchart EMA、价格和 MACD 图
- ruby-on-rails - 第一次出现 Ruby 会话负载问题
- google-sheets - 谷歌查询语言:根据每列的条件计算多列并按日期分组
- android - How to align fab to the bottom right of screen inside a fragment in a recycler view?
- sample - Generating different samples of data columns
- outlook - Create Multible Outlook meetings in one ics File
- laravel - Laravel, jetstream global language prefix to routes
- asp.net-mvc - left join query in MVC
- excel - 在excel中找到位于底行的值
- node.js - 将多个投影与 MongoDB 聚合中的条件相结合