我在dumb组件中预定义了列表项。我试图将列表项传递给我的onClick函数,以便我的代码可以识别单击了哪个项目,我可以相应地导航。这是我的哑组件代码:
export const mainMenuListItems = (gn, an, onMenuClick) => (
<div>
<ListItem onClick={() => onMenuClick(event, this)} button>
<ListItemIcon>
<HomeIcon />
</ListItemIcon>
<ListItemText primary="Home" />
</ListItem>
<ListItem onClick={() => onMenuClick(event, this)} button>
<ListItemIcon>
<ChartIcon />
</ListItemIcon>
<ListItemText primary="Charts" />
</ListItem>
</div>
);
这是我智能组件的代码:
onMenuClick = (event, type) => {
debugger; //eslint-disable-line
let a = type; //always undefined
alert('Home Clicked');
};
........OTHER CODE............
..............................
<List className={classes.list}>
{mainMenuListItems(
this.props.isGenerationAllowed,
this.props.isAnalystAllowed,
this.onMenuClick,
)}
</List>
我试图在这个函数调用“onMenuClick(event,this)”中绑定“this”,但无论我做什么,它总是“未定义”。我确信访问用户点击的对象应该非常容易(至少在其他语言中)。请指导我如何访问该对象。我在这个问题上花了相当多的时间。任何帮助,将不胜感激。