【发布时间】:2019-09-15 01:27:37
【问题描述】:
我正在尝试使用包含多个条目的语义 UI 手风琴,并允许一次打开多个条目;每个条目都有一个标题部分,其中包含一个带有弹出窗口的图标和一个包含文本区域的内容区域。
我希望能够同时打开两个手风琴,这显然是在制作 documentation here 中所述的手风琴元素时使用 exclusive={false} 道具支持的
但该示例似乎使用了一个对象数组,其内容为字符串,而不是其他 react/html/jsx 元素(在我的情况下,它是语义 ui 图标、弹出窗口和文本区域)。该对象数组被传递到手风琴的panel 道具。
而且我不熟悉语义 ui react 手风琴需要什么才能正常运行以跟踪索引和其他内容,我不确定我还需要配置什么,或者这是否可以使用语义 ui 组件。
我基本上复制了 this example 并使用了一个活动索引和一个 onclick 处理程序,它在组件反应状态下切换活动索引。
这里是手风琴和 onclick 处理程序和反应应用程序状态的 sn-p:
class FileUpload extends Component {
// other stuff omitted
constructor(props) {
super(props);
this.state = {
activeAccordionIndex: -1
};
handleAccordionClick = (e, titleProps) => {
const { index } = titleProps;
const { activeAccordionIndex } = this.state;
const newIndex = activeAccordionIndex === index ? -1 : index;
this.setState({
activeAccordionIndex: newIndex
})
}
// I'm using a small helper function to create the accordion and invoke it in
// the render method, just one item for brevity; the other entries are pretty
// much the same
getAccordionInputs() {
const { activeAccordionIndex } = this.state;
let accordionContent = (
<Accordion fluid exclusive={false}>
<Accordion.Title
className="file-upload-ordinal-accord-title"
active={activeAccordionIndex === 0}
index={0}
onClick={this.handleAccordionClick}
>
<Icon name='dropdown' />
Enter Ordinal Features
<Popup
on="click"
position="right center"
header="Ordinal Features Help"
content={
<div className="content">
<p>Ordinal Features help description</p>
</div>
}
trigger={
<Icon
className="file-upload-ordinal-help-icon"
inverted
size="large"
color="orange"
name="info circle"
/>
}
/>
</Accordion.Title>
<Accordion.Content
active={activeAccordionIndex === 0}
>
<textarea
className="file-upload-ordinal-text-area"
id="ordinal_features_text_area_input"
label="Ordinal Features"
placeholder={"{\"ord_feat_1\": [\"MALE\", \"FEMALE\"], \"ord_feat_2\": [\"FIRST\", \"SECOND\", \"THIRD\"]}"}
onChange={this.handleOrdinalFeatures}
/>
</Accordion.Content>
</Accordion>
)
return accordionContent;
}
}
我不知道如何设置它以允许同时打开多个手风琴,其中的内容不是字符串。语义 ui 手风琴可以做到这一点吗?还是我需要寻找替代解决方案和/或手工制作具有所需行为的作品?
【问题讨论】:
标签: javascript user-interface semantic-ui semantic-ui-react