【发布时间】:2016-07-28 22:50:34
【问题描述】:
我有一个项目列表 (ResultItem),其中有一个内部组件 (ResultTag),单击该组件时,会在其上方显示一个工具提示(添加了一个 HTML 类,再次单击时将其删除,以隐藏它)。
但是,当我单击ResultTag,然后单击其下方ResultItem 之一中的ResultTag 时,两者都显示;除了我刚刚单击的那个之外,我将如何隐藏所有ResultTag,以便一次只能显示一个。
目前,在ResultItem 中,我有一个onClick 函数,每当用户单击ResultItem 和@ 987654332@ 可见。但是,我需要它在每个 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中的另一个被点击时,隐藏所有其他ResultTags
【问题讨论】:
标签: javascript reactjs jsx