我有一个项目列表(ResultItem
),其中包含一个组件(ResultTag
),当单击该组件时,它将显示一个工具提示在其上方(将HTML类添加到其中并将其删除当再次点击时,隐藏它)。当显示另一个相同的组件时隐藏组件
但是,当我点击ResultTag
,然后点击ResultTag
在其中一个ResultItem
的下面,都显示;我将如何去隐藏ResultTag
的所有除了我刚刚点击的那个以外,所以一次只能显示一个。
目前,在ResultItem
,我有一个onClick
功能每当用户点击任何地方内ResultItem
和ResultTag
可见这台状态showTooltip
在ResultTag
为false /隐藏(使用道具)。然而,我需要这个工作跨越每个ResultItem
,这意味着工作的交叉组件。
下面是一些简化的代码:
/* ResultTag */
showTooltip() {
this.setState({ showTooltip: true })
}
render() {
return (
<div onClick={this.showTooltip}>
{this.renderTooltip()} { /* function which contains the JSX/HTML to show the toolip */ }
<span className="tag--label">Tags</span>
</div>
)
}
隐藏在ResultItem
完成的,通过设置状态,然后接收作为ResultTag
道具。
总结:
- 我有许多
ResultItem
组分在列表视图 - 每个
ResultItem
具有,一个ResultTag
点击它时,示出了标签/标签 - 上的工具提示当
ResultTag
是可见的,另一个在不同的ResultItem
被点击,隐藏所有其他ResultTag
s