使用 react-sortable-hoc 拖动时丢失 tr 元素的样式

Ale*_*dre 2 reactjs react-sortable-hoc

我的问题是拖动时所选元素的样式丢失。我正在使用 react-sortable-hoc 库,它没有提供相关信息。他们的例子没有这个问题。样式始终与原始项目保持一致。

<tbody>
    {items.map((value, index) => (
    <SortableItem key={`item-${value.code}`} index={index} sortIndex={index} value={value} />
    ))}
</tbody>
Run Code Online (Sandbox Code Playgroud)
const SortableItem = SortableElement(({value, sortIndex}) => (
        <tr>
            <DragHandle sortIndex={sortIndex}/>
            <td>{value.label}</td>
            <td>{value.beta.toString()}</td>
            <td>{value.prod.toString()}</td>
            <td>{value.hidden.toString()}</td>
        </tr>
    ));
Run Code Online (Sandbox Code Playgroud)
        const DragHandle = SortableHandle(({sortIndex}) => <td>{sortIndex}</td>);
Run Code Online (Sandbox Code Playgroud)

这是我选择并拖动元素之前的列表。

这是我选择并开始拖动第一个元素时的列表。 在此处输入图片说明

小智 6

对我来说,问题在于 CSS 层次结构和特异性,我正在定义与父项相关的项的样式。像这样:

.list .item{
...
}
Run Code Online (Sandbox Code Playgroud)

但是在拖动项目时,该元素不再链接到父类,而是父类之外的单独元素。因此它失去了所有的造型!因此为了解决这个问题,我们可以像这样全局定义 item 和 parent 样式:

.list{
...
}

.item{
...
}
Run Code Online (Sandbox Code Playgroud)