我有三个操作支持我的SpeedDialAction,但是当我尝试记录单击事件的各个操作时,我得到的是undefined。
我尝试使用不同的函数作为操作,还尝试了方法调用中的箭头函数语法。
onClick={e => action.action(e)}
并且
onClick={action.action}
这些操作:
const actions = [
{ icon: <Add />, name: 'Product', action: handleDialogOpen },
{ icon: <Add />, name: 'Addon', action: handleDialogOpen },
{ icon: <Label />, name: 'Tag', action: handleDialogOpen }
]
快速拨号:
<SpeedDial
ariaLabel='SpeedDial example'
className={classes.speedDial}
icon={<SpeedDialIcon />}
onBlur={handleClose}
onClick={handleClick}
onClose={handleClose}
onFocus={handleOpen}
onMouseEnter={handleOpen}
onMouseLeave={handleClose}
open={open}
>
{actions.map(action => (
<SpeedDialAction
tooltipOpen
key={action.name}
icon={action.icon}
tooltipTitle={action.name}
onClick={action.action}
/>
))}
</SpeedDial>
handleDialogOpen函数仅仅尝试记录该事件。
我期望输出是一个事件对象,而不是未定义的(undefined)。
onClick
处理程序,很容易混淆 - 具体来说是SpeedDialAction
,应该在处理程序中传递action.operation
而不是actions.operation
。 - Jason Sturges