预期行为是单击工具提示时转到另一个页面。为了实现这个功能,我为 PopperProps
提供了 onClick Prop 。目的。
下面是我的代码:
interface Props extends TooltipProps{}
const CustomTooltip : React.FC<Props> = (props) => {
const { arrow, ...classes } = useStylesBootstrap();
const [arrowRef, setArrowRef] = React.useState<HTMLSpanElement | null>(null);
const handleClick = (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {
event.preventDefault();
event.stopPropagation();
console.log("clicked");
window.location.replace('/info/contact-us');
};
return (
<Tooltip
classes={classes}
PopperProps={{
style: { border: "1px red solid" },
onClick: handleClick,
popperOptions: {
modifiers: {
arrow: {
enabled: Boolean(arrowRef),
element: arrowRef,
},
},
},
}}
{...props}
title={(
<>
{props.title}
<span className={arrow} ref={setArrowRef} />
</>
)}
/>
);
};
最佳答案
您需要提供interactive
Tooltip
的 Prop .当interactive
未指定,Tooltip
disables pointer events (所以点击不会做任何事情),但是 pointer-events
设置为 auto
当interactive is true . interactive
Prop 还可以防止 Tooltip
当您将鼠标从触发元素移动到 Tooltip
时立即关闭.
这是一个工作示例:
import React from "react";
import DeleteIcon from "@material-ui/icons/Delete";
import IconButton from "@material-ui/core/IconButton";
import Tooltip from "@material-ui/core/Tooltip";
export default function SimpleTooltips() {
return (
<div>
<Tooltip
interactive
title={
<div onClick={() => console.log("clicked tooltip text")}>Delete</div>
}
>
<IconButton aria-label="delete">
<DeleteIcon />
</IconButton>
</Tooltip>
</div>
);
}
关于reactjs - onClick 不适用于 Material-UI 工具提示中的 Popper 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61527163/