我有一個項目列表(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