【发布时间】:2020-08-01 08:37:58
【问题描述】:
我有两个组件:1:StudentList 2:主修react和antd。
StudentList Component 呈现学生列表。
Major Component 列出了您可以选择的专业列表。选择专业后,所选专业名称显示在学生列表的顶部。列表将根据所选专业进行过滤。
这是 StudentList 组件,包含 Major 组件:
class StudentList extends Component {
render(){
return(
<>
<Major/>
<h5>20 student found in <a>selected major</a></h5>
<List>
//this is the list of students and is not related to this question
</List>
</>);
}
}
这是主要组件,带有用于打开弹出框的过滤器按钮:
class Major extends Component {
render() {
return (
<Popover
trigger="click"
content={content} //list of majors
>
<Button>
<FilterOutlined /> Select major to filter
</Button>
</Popover>
);
}
}
当我点击Select major to filter 按钮时,弹出框会打开以选择专业。我想更改代码以便从两个地方打开此弹出窗口:
1- 单击主要组件中的Select major to filter 按钮
2- 点击 StudentList 组件标题中的selected major。
注意:我想在同一个地方打开同一个弹出框(类似于我点击Select major to filter按钮时)
也许它可以处理state 和handleVisibleChange 函数。但我不知道如何从 2 个组件中处理它。我很高兴听到您的解决方案。
【问题讨论】:
-
Popover与Tooltip共享 API。您可以使用visible属性来切换您的Popover,但您必须自己处理所有显示隐藏事件。您也可以在少校的Button上触发click事件。 ant.design/components/tooltip/#API
标签: javascript reactjs antd popover