Javascript 如何制作手风琴组件?
文档中没有手风琴的官方样本 使用卡组件,可以扩展默认折叠行为以创建手风琴。要正确实现手风琴风格,请确保使用.accordio作为包装Javascript 如何制作手风琴组件?,javascript,html,css,reactjs,reactstrap,Javascript,Html,Css,Reactjs,Reactstrap,文档中没有手风琴的官方样本 使用卡组件,可以扩展默认折叠行为以创建手风琴。要正确实现手风琴风格,请确保使用.accordio作为包装 可折叠组项目#1 动物保护协会的陈词滥调,埃尼姆·埃乌斯莫德的高寿命accusamus terry richardson广告鱿鱼。3狼月亮奥特餐厅,非丘比特滑板多洛早午餐。食品车奎奴亚藜。早午餐3狼月亮临时,太阳阿利夸放了一只鸟 在它上面,鱿鱼单一来源咖啡Nalla assumenda shoreditch et.Nihil anim keffiyeh hel
可折叠组项目#1
动物保护协会的陈词滥调,埃尼姆·埃乌斯莫德的高寿命accusamus terry richardson广告鱿鱼。3狼月亮奥特餐厅,非丘比特滑板多洛早午餐。食品车奎奴亚藜。早午餐3狼月亮临时,太阳阿利夸放了一只鸟
在它上面,鱿鱼单一来源咖啡Nalla assumenda shoreditch et.Nihil anim keffiyeh helvetica,工艺啤酒工人wes anderson cred Nescuint sapiente ea proident。纯素食主义者,屠夫副洛莫。从工艺啤酒场到餐桌,
粗斜纹棉布美学合成器Nescuint您可能还没有听说过accusamus labore可持续VHS。
可折叠组项目#2
动物保护协会的陈词滥调,埃尼姆·埃乌斯莫德的高寿命accusamus terry richardson广告鱿鱼。3狼月亮奥特餐厅,非丘比特滑板多洛早午餐。食品车奎奴亚藜。早午餐3狼月亮临时,太阳阿利夸放了一只鸟
在它上面,鱿鱼单一来源咖啡Nalla assumenda shoreditch et.Nihil anim keffiyeh helvetica,工艺啤酒工人wes anderson cred Nescuint sapiente ea proident。纯素食主义者,屠夫副洛莫。从工艺啤酒场到餐桌,
粗斜纹棉布美学合成器Nescuint您可能还没有听说过accusamus labore可持续VHS。
可折叠组项目#3
动物保护协会的陈词滥调,埃尼姆·埃乌斯莫德的高寿命accusamus terry richardson广告鱿鱼。3狼月亮奥特餐厅,非丘比特滑板多洛早午餐。食品车奎奴亚藜。早午餐3狼月亮临时,太阳阿利夸放了一只鸟
在它上面,鱿鱼单一来源咖啡Nalla assumenda shoreditch et.Nihil anim keffiyeh helvetica,工艺啤酒工人wes anderson cred Nescuint sapiente ea proident。纯素食主义者,屠夫副洛莫。从工艺啤酒场到餐桌,
粗斜纹棉布美学合成器Nescuint您可能还没有听说过accusamus labore可持续VHS。
答案是正确的。您可以使用卡
和折叠
组件创建手风琴。
首先,初始化构造函数和状态
constructor(props) {
super(props);
this.toggle = this.toggle.bind(this);
this.state = { collapse: 0, cards: [1, 2, 3, 4, 5] };
}
然后是切换/折叠手风琴的方法
toggle(e) {
let event = e.target.dataset.event;
this.setState({ collapse: this.state.collapse === Number(event) ? 0 : Number(event) });
}
以及render()
函数:
render() {
const {cards, collapse} = this.state;
return (
<div className="container">
<h3 className="page-header">Reactstrap Accordion using card component</h3>
{cards.map(index => {
return (
<Card style={{ marginBottom: '1rem' }} key={index}>
<CardHeader onClick={this.toggle} data-event={index}>Header</CardHeader>
<Collapse isOpen={collapse === index}>
<CardBody>Example</CardBody>
</Collapse>
</Card>
)
})}
</div>
);
}
如果您使用react-Strap和react-Hooks,您可以按如下操作 1从reactstrap导入所需的组件
import { Collapse, CardBody, Card, CardHeader} from 'reactstrap';
2-从react导入useState
import React, {useState} from 'react';
3-在组件中创建状态
const [toggleQuestion, setToggequestion] = useState(1);//1 is the default id to be opened by default
4-制作你的手风琴。注意:在我的例子中,我只切换身体,但你可以通过移动折叠来切换一切
<Card>
<CardHeader onClick={() => setToggequestion(1)}>
<span className="font-weight-bold">title</span>
</CardHeader>
<Collapse isOpen={toggleQuestion === 1 ? true : false}>
<CardBody>
example text
</CardBody>
</Collapse>
</Card>
<Card>
<CardHeader onClick={() => setToggequestion(2)}>
<span className="font-weight-bold">title 2</span>
</CardHeader>
<Collapse isOpen={toggleQuestion === 2 ? true : false}>
<CardBody>
example text 2
</CardBody>
</Collapse>
</Card>
setToggequestion(1)}>
标题
示例文本
setToggequestion(2)}>
标题2
示例文本2
现在您可以创建任意多个,只需更改ID。在我的情况下,ID仅为1和2您可以使用其他框架:react bootstrap@RyanNghiem-使用另一个框架通常不是一个好建议,因为它完全回避了问题,通常不会提供答案。这应该是一个注释。请用代码片段扩展您的答案。请参阅Stackoverflow.com/help/how-to-answer
<Card>
<CardHeader onClick={() => setToggequestion(1)}>
<span className="font-weight-bold">title</span>
</CardHeader>
<Collapse isOpen={toggleQuestion === 1 ? true : false}>
<CardBody>
example text
</CardBody>
</Collapse>
</Card>
<Card>
<CardHeader onClick={() => setToggequestion(2)}>
<span className="font-weight-bold">title 2</span>
</CardHeader>
<Collapse isOpen={toggleQuestion === 2 ? true : false}>
<CardBody>
example text 2
</CardBody>
</Collapse>
</Card>