Когда я перетаскиваю элемент, список исчезает

JSFiddle: https://jsfiddle.net/40vpaLj5/

Я погуглил некоторые проблемы, и единственные исчезающие связанные проблемы, которые я обнаружил, были, когда люди использовали это на модальной стороне, и они говорили об установке z-index, чтобы исправить это. Я все равно попробовал все еще ничего. Как я могу это исправить?

import React from 'react';
import PlaylistPages from './PlaylistPages';

class PlaylistSortableComponent extends React.Component {
  constructor(props, context) {
    super(props, context);

    this.state = {
      test: [
        '1','2', '3', '4'
      ]
    }
  }

  render() {
    return (
      <PlaylistPages pages={this.state.test} style={{zIndex: 999999}} />
    );
  }
}   


const PlaylistPages = SortableContainer(({pages}) => {
  return (
    <div>
      {
        pages.map((page, index) =>
          <PlaylistPage key={index} page={page} style={{zIndex: 99999999}} />
      )}
    </div>
  );
});   

const PlaylistPage = SortableElement(({page}) => {
  return (
    <div style={{zIndex: 99999999}} >{page}</div>
  );
});

1 ответ

Решение

Каждый sortableElement должен иметь свой собственный index проп:

<PlaylistPage key={index} index={index} page={page} style={{zIndex: 99999999}} />

Вот обновление вашего jsfiddle:
https://jsfiddle.net/40vpaLj5/1/

У меня была такая же проблема, и Декель прав. В моем случае z-index исправляет ошибку:

<SortableList
    axis="y"
    helperClass="sortable-list-tab"
    lockAxis="y"
    distance={0}
    onSortEnd={onSortEnd}
>
    <ul>
       {toolItems.map((value, index) => (
          <SortableItem key={`item-${index}`} index={index}>
              <li className="sortable-list-tab" >
                 <Button type="dashed">{`${value.label} (${index + 1})`}</Button>
              </li>
          </SortableItem>
        ))}
    </ul>
</SortableList>

А класс sortable-list-tab выглядит так:

.sortable-list-tab {
    cursor: default;
    visibility: visible;
    z-index: 99999999;
    list-style-type: none;
    padding: .3em;
  }
Другие вопросы по тегам