【发布时间】:2020-06-26 08:26:54
【问题描述】:
当用户单击按钮(使用 onClick)并呈现 Popper 组件时,我试图打开一个 Popper 元素,因为我在项目数组列表中使用此函数调用。我想在按钮触发后执行元素。
onClick 处理程序
const onAddToPlaylistClick = (evt, ytid) => {
evt.stopPropagation();
evt.preventDefault();
console.log('here');
const element = evt.currentTarget;
console.log(element);
return (
<ShowAddToPlaylistTooltip
ytid={ytid}
element={element}
playlistState={playlistState}
userState={userState}
key={ToolTipKeys.AddToPlaylistToolTip}
/>
);
};
按钮组件
const onAddToPlaylistClick = (evt) => {
props.onAddToPlaylistClick(evt, props.ytid);
};
<IconButton className={classes.iconButton} onClick={onAddToPlaylistClick}>
<PlaylistAddIcon className={classes.icon} />
</IconButton>
波普尔元素
const ShowAddToPlaylist = (props) => {
const { ytid, userState, playlistState, element } = props;
console.log('ShowAddToPlaylist...');
const open = Boolean(element);
const uid = userState.profile.uid;
const userPlaylists = playlistState.playlistsByUser[uid] || [];
const playlistList = userPlaylists.map((pid) => ({
name: (playlistState.playlists[pid] ?? {}).name,
pid: pid,
}));
const hasPlaylists = playlistList.length > 0;
return (
<Tooltip
id={props.id}
open={props.open}
title="Add to playlist"
anchorRef={element}
>
<AddPlaylistToolTip
ytid={ytid}
playlistList={playlistList}
/>
</Tooltip>
);
};
但是 onAddToPlaylistClick 没有触发 React Element,我做错了什么?
【问题讨论】:
-
你在哪里使用 onAddToPlaylistClick?
-
@nafeo onAddToPlaylistClick 函数提供 console.log(element)。但不执行元素
标签: javascript reactjs