首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用React高阶组件-特定的react-sortable-hoc

使用React高阶组件-特定的react-sortable-hoc
EN

Stack Overflow用户
提问于 2016-06-10 23:02:44
回答 1查看 2.1K关注 0票数 1

我很难理解这个HOC的一个非常基本的部分,它对NPM有很好的吸引力,所以我猜这里有一个简单的答案:

在他给出的关于NPM的例子中,我已经存在的组件放在哪里。应该用<myComponent />取代{value}吗?我知道这些包装器应该接受我的组件,在本例中是组件,作为参数,但我认为我在这里遗漏了一些完整的东西。感谢您的帮助。他的示例文档如下

代码语言:javascript
复制
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'));
EN

回答 1

Stack Overflow用户

发布于 2016-06-10 23:58:34

SortableElement将包装您的组件以从react-sortable-hoc特性中受益。所以你必须这样写(假设<myComponent />是列表中的一个元素):

代码语言:javascript
复制
const SortableItem = SortableElement(myComponent);

这将创建一个列表元素,该元素将呈现具有附加功能的myComponent

({value}) => <li>{value}</li>是一个表示React组件的无状态函数。你可以这样写:

代码语言:javascript
复制
const myComponent = ({value}) => <li>{value}</li>;
const SortableItem = SortableElement(myComponent);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37751482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档