Реакция красивая DnD, все остальные элементы смещаются вправоJavascript

Форум по Javascript
Ответить
Anonymous
 Реакция красивая DnD, все остальные элементы смещаются вправо

Сообщение Anonymous »

Я пытаюсь реализовать React Beautiful DnD для своего приложения. Однако я заметил довольно любопытную проблему.
Исходный список перед перетаскиванием
Я заметил, что когда я пытаюсь перетащить элементы, все остальные элементы (элементы, которые не перетаскиваются) в списке смещаются вправо.
Список во время перетаскивания
Изначально я подумал, что это проблема CSS, поэтому попытался удалить весь CSS, но проблема упорствовал. Я также понимаю, что в текущем коде ниже, но с тех пор я исправил работу функции onDragEnd, но проблема все еще сохраняется. Из-за этой проблемы перетаскиваемые элементы всегда будут располагаться сверху, несмотря на то, что я хочу разместить их в других местах.
Ниже приведен мой код:
import { SysFooterButtonGroup, SysProFormInput, TranslatedMessage } from '@comp/components-mobile';
import { Form } from 'antd-mobile';
import React, { useEffect } from 'react';
import { DragDropContext, Draggable, Droppable, DropResult } from 'react-beautiful-dnd';

const BillItem: React.FC = () => {
const [form] = Form.useForm();
const analysisTemplateItemGroups = Form.useWatch('analysisTemplateItemGroups', form);

const [items] = React.useState([
{ id: '1', name: 'Item 1' },
{ id: '2', name: 'Item 2' },
{ id: '3', name: 'Item 3' },
]);
form.setFieldValue('analysisTemplateItemGroups', items);

useEffect(() => {
console.log(analysisTemplateItemGroups, 'analysisTemplateItemGroups useEffect');
}, [analysisTemplateItemGroups]);
const onDragEnd = (result: DropResult) => {
if (!result.destination) {
return;
}

const items = [...(analysisTemplateItemGroups || [])];
const [reorderedItem] = items.splice(result.source.index, 1);
items.splice(result.destination.index, 0, reorderedItem);

form.setFieldValue('analysisTemplateItemGroups', items);
};

return (



style={{
padding: '20px',
maxWidth: '600px',
margin: '0 auto',
position: 'relative',
overflow: 'visible',
}}
>
Testing Drag



{(provided) => (

{analysisTemplateItemGroups?.map((item, dragIndex) => (

{(provided, snapshot) => (

{item.name}

)}

))}
{provided.placeholder}

)}






);
};
export default BillItem;


Подробнее здесь: https://stackoverflow.com/questions/798 ... -the-right
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»