Использование компонента React высшего порядка - специально реагирует на сортировку

У меня возникли проблемы с пониманием самой основной части этого HOC, которая имеет хорошую тягу к NPM, поэтому я предполагаю, что здесь есть простой ответ:

Куда идут мои ранее существующие компоненты в примере, который он дает на NPM. Является {value} должен быть заменен на <myComponent />? Я знаю, что эти обертки должны принимать мой компонент, в данном случае компоненты, в качестве аргументов, но я думаю, что мне здесь не хватает чего-то интегрального. Любая помощь приветствуется. Его пример документации ниже

import React, {Component} from 'react';
import {render} from 'react-dom';
import {SortableContainer, SortableElement, arrayMove} from 'react-sortable-list-hoc';

const SortableItem = SortableElement(({value}) => <li>{value}</li>);

const SortableList = SortableContainer(({items}) => {
    return (
        <ul>
            {items.map((value, index) =>
                <SortableItem key={`item-${index}`} index={index} value={value} />
            )}
        </ul>
    );
});

class SortableComponent extends Component {
    state = {
        items: ['Item 1', 'Item 2', 'Item 3', 'Item 4', 'Item 5', 'Item 6']
    }
    onSortEnd = ({oldIndex, newIndex}) => {
        this.setState({
            items: arrayMove(this.state.items, oldIndex, newIndex)
        });
    };
    render() {
        return (
            <SortableList items={this.state.items} onSortEnd={this.onSortEnd} />
        )
    }
}

render(<SortableComponent/>, document.getElementById('root'));

1 ответ

SortableElement обернет ваш компонент, чтобы извлечь выгоду из react-sortable-hoc функции. Таким образом, вы должны написать что-то подобное <myComponent /> является элементом списка):

const SortableItem = SortableElement(myComponent);

Это создаст элемент списка, который будет отображать myComponent с дополнительными функциями.

({value}) => <li>{value}</li> является функцией без сохранения состояния, представляющей компонент React. Вы могли бы написать:

const myComponent = ({value}) => <li>{value}</li>;
const SortableItem = SortableElement(myComponent);
Другие вопросы по тегам