首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ExtReact中为MenuItems设置数据属性?

如何在ExtReact中为MenuItems设置数据属性?
EN

Stack Overflow用户
提问于 2018-04-17 18:48:47
回答 1查看 51关注 0票数 0

因此,我能够在静态类/函数中从操作和reducer返回数组,现在我想在MenuItems (https://docs.sencha.com/extreact/6.5.0/modern/Ext.menu.Item.html)的data属性中呈现数据。我觉得我需要在tpl内联函数中设置属性,但我不知道如何设置。这是我到目前为止已经尝试过的(阅读评论):

代码语言:javascript
复制
function ShortcutComponent({ usershortcuts }) {
    console.log(usershortcuts); // I get an array
    return (
        <Button ui="headerButton" arrow={false} ripple={false} iconCls="icon-directions" border={false} handler={() => this.loadData()}>
                <Menu title="Shortcuts">
                    <MenuItem data={usershortcuts} tpl={function(data){
                        setIconCls(data.shortcutDefinition.iconCls); // I can't use setIconCls
                        setText(data.shortcutDefinition.description); // I can't set text
                    }} />
                </Menu>
            </Button>
    )
}

const mapStateToProps = (state) => {
    return { 
        usershortcuts: state.usershortcuts
    }
};


const mapDispatchToProps = (dispatch) => {
    return {
        actions: bindActionCreators(usershortcutAction, dispatch)
    }
}


export default connect(mapStateToProps, mapDispatchToProps) (ShortcutComponent);
EN

回答 1

Stack Overflow用户

发布于 2018-04-17 18:57:23

使用map()呈现项目数组:

代码语言:javascript
复制
function ShortcutComponent({ usershortcuts }) {
    return (
        <Button ui="headerButton" arrow={false} ripple={false} iconCls="icon-directions" border={false} handler={() => this.loadData()}>
                <Menu title="Shortcuts">
                    {usershortcuts.map(shortcut => (
                        <MenuItem key={shortcut.key} data={shortcut} tpl={data => (
                            <a className={data.iconCls} href={data.href}>{data.description}</a>
                        )}/>
                    ))}
                </Menu>
            </Button>
    )
}

并不是说相同类型的每个兄弟都需要唯一的键,这样react才能区分它们。通常你会使用你的实体的主键。

jsx是一个必须返回菜单项的tpl表示形式的函数。在我的示例中,这是一个链接,但它可以是其他所有内容。

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

https://stackoverflow.com/questions/49876124

复制
相关文章

相似问题

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