【发布时间】:2019-05-03 14:52:13
【问题描述】:
我在我的一个项目中使用React material 框架。我正在尝试添加多个controlled tooltips,它们只有在它们各自的state 为visible 时才可见。
不幸的是,现在我被卡住了,因为我与多个组件共享相同的状态,因此一旦您将鼠标悬停在其中任何一个上,所有工具提示都是可见的。有什么办法吗?我认为这可以通过数组来完成。
P.S 在一个页面内会有multiple parent components,每个页面都有三组工具提示,即Edit, Delete, View
class ControlledTooltips extends React.Component {
state = {
open: false,
};
handleTooltipClose = () => {
this.setState({ open: false });
};
handleTooltipOpen = () => {
this.setState({ open: true });
};
render() {
return (
<div>
<Tooltip
enterDelay={300}
id="tooltip-controlled"
leaveDelay={300}
onClose={this.handleTooltipClose}
onOpen={this.handleTooltipOpen}
open={this.state.open}
placement="bottom"
title="Edit"
>
<IconButton aria-label="Delete">
<Edit />
</IconButton>
</Tooltip>
<Tooltip
enterDelay={300}
id="tooltip-controlled"
leaveDelay={300}
onClose={this.handleTooltipClose}
onOpen={this.handleTooltipOpen}
open={this.state.open}
placement="bottom"
title="view"
>
<IconButton aria-label="view">
<Visibility />
</IconButton>
</Tooltip>
<Tooltip
enterDelay={300}
id="tooltip-controlleded"
leaveDelay={300}
onClose={this.handleTooltipClose}
onOpen={this.handleTooltipOpen}
open={this.state.open}
placement="bottom"
title="Delete"
>
<IconButton aria-label="Delete">
<DeleteOutlined />
</IconButton>
</Tooltip>
</div>
);
}
}
任何帮助将不胜感激:)
【问题讨论】:
-
您能在您的沙盒演示中演示实际问题吗?
-
@EinarÓlafsson 我已经更新了链接。
-
我给你写了一个建议@vijayscode,希望对你有帮助。
标签: javascript reactjs react-material