首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用标尺中的高阶反应元件- react

使用标尺中的高阶反应元件- react
EN

Stack Overflow用户
提问于 2016-10-07 15:46:20
回答 1查看 292关注 0票数 0

我正在尝试使用 高级 react组件从Scala.js使用scalajs-react库。

下面是一个示例,说明如何使用JS中的这个组件:

代码语言:javascript
复制
import React, {Component} from 'react';
import {render} from 'react-dom';
import {SortableContainer, SortableElement, arrayMove} from 'react-sortable-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'));

表达式({value}) => <li>{value}</li> desugars to (props) => { var value = props.value; return <li>{value}</li> }<li>{value}</li> JSX desugars表示React.createElement("li", null, value );,但问题是,我不知道如何将该表达式(React.createElement("li", null, value );)转换为Scala.JS。

(({value}) => <li>{value}</li>这里作为包装组件结束)

我需要用Scala.JS写些什么,这样我才能得到相当于React.createElement("li", null, value )的东西

摘要:

换句话说,如果在JS中我编写了var element=React.createElement("li", null, value ),并且得到的对象称为element,那么计算出完全相同的element对象(val element = ??? )的Scala.JS表达式是什么?

相关问题是这里

EN

回答 1

Stack Overflow用户

发布于 2016-10-07 19:37:49

代码语言:javascript
复制
object Test
{
  def createItem(itemText: String): ReactTagOf[LI] = <.li(_react_fragReactNode(itemText)(reactNodeInhabitableS))
}

object ScalaJSExample extends js.JSApp {
  def main(): Unit = {

    val item = Test.createItem("bla42")
    val item2: ReactElement = item

}

item2React.createElement("li", null, "bla42" )相同

通过在浏览器中检查item2React.createElement("li", null, "bla42" )来确认:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39921204

复制
相关文章

相似问题

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