Javascript 通过函数创建菜单项
我有一份菜单,上面列出了如下项目Javascript 通过函数创建菜单项,javascript,reactjs,Javascript,Reactjs,我有一份菜单,上面列出了如下项目 <MenuItem //className={this.classes.menuItem} onClick={this.handleClose} > <NavLink to={Constants.pagesURL+page} //className={this.classes.menuItemAnchor} > {Constant
<MenuItem
//className={this.classes.menuItem}
onClick={this.handleClose}
>
<NavLink
to={Constants.pagesURL+page}
//className={this.classes.menuItemAnchor}
>
{Constants.pagesName+page}
</NavLink>
</MenuItem>
{Constants.pagesName+page}
我想用menuItem(page)
函数来包装它,所以在页面中,我需要做的就是{this.menuItem('Home')}和{this.menuItem('Page1')}
来填充菜单项,既简单又干净
问题是,我希望调用函数时发送的名称添加到常量名称中。。例如,如果我执行{this.menuItem('Home')}
,那么{Constants.pagesName+page}
实际上需要是{Constants.pagesNameHome}
我如上所述尝试在我发送的页面前面添加+,但不起作用。。我尝试了{Constants.pagesName[page]}
没有工作,我尝试创建让pageName='pagesName'+page代码>然后执行{Constants.pagesName}
也不起作用。我怎样才能得到这份工作
实际上,{Constants.pagesURL+page}
我得到了“undefinedHome”和“undefinedPage1”…您尝试过:
const menuItem=(page)=>`${Constants.pagesURL}${page}`;
好的,正如我所预料的,这很容易。。到处玩,我想这是一条路
{Constants['pagesURL'+page]}
这是一种魅力
完整代码:
menuItem(page) {
return(
<MenuItem
//className={this.classes.menuItem}
onClick={this.handleClose}
>
<NavLink
to={Constants['pagesURL'+page]}
//className={this.classes.menuItemAnchor}
>
{Constants['pagesName'+page]}
</NavLink>
</MenuItem>
)
}
menuItem(第页){
返回(
{Constants['pagesName'+page]}
)
}
谢谢@Dennis,我为它设置了一个函数,通过下面的更改,我使它恢复工作。