【发布时间】:2018-05-28 22:27:04
【问题描述】:
在我的组件中,我有一个Table,其中包含从一些自定义对象数组生成的行。在最后一个TableCell 我想要一个图标按钮,单击它会打开Menu 并带有一些MenuItem 操作(编辑和删除)。这是我的代码:
{folders.map(folder => {
return (
<TableRow key={folder.id} >
<TableCell>{folder.name}</TableCell>
<TableCell>
<IconButton
onClick={this.handleFolderActionClick}>
<MoreHoriz />
</IconButton>
<Menu onClose={this.handleFolderActionClose} >
<MenuItem onClick={event => {onEditFolder(event, folder)}}>
<ListItemIcon>
<Edit />
</ListItemIcon>
<ListItemText inset primary="Edit" />
</MenuItem>
<MenuItem onClick={{event => onDeleteFolder(event, folder)}}>
<ListItemIcon>
<Delete />
</ListItemIcon>
<ListItemText inset primary="Delete" />
</MenuItem>
</Menu>
</TableCell>
</TableRow>
);
})}
onClick 事件始终传递数组中的最后一个文件夹元素,而不是映射到特定 TableRow 的那个。
我读过 MenuItem onClick 事件不应该以这种方式使用,但我不知道如何解决我的具体问题。我愿意接受任何建议。如何将外部map函数中的对象传递给ManuItem的onClick事件?
编辑: Sandbox example
【问题讨论】:
标签: javascript reactjs material-ui