Javascript 如何制作手风琴组件?

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

文档中没有手风琴的官方样本

使用卡组件,可以扩展默认折叠行为以创建手风琴。要正确实现手风琴风格,请确保使用.accordio作为包装


可折叠组项目#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>