Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用Reactjs和Bootstraps一次显示一个折叠内容

使用Reactjs和Bootstraps一次显示一个折叠内容
EN

Stack Overflow用户
提问于 2019-01-28 07:08:56
回答 1查看 2.3K关注 0票数 1

使用Reactjs和Bootstraps一次显示一个折叠内容。

下面的代码使用jquery和bootstrap4来显示和隐藏折叠内容,当每个按钮一次单击一个并运行良好时。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!doctype html>
<html>
    <head>

  <meta charset="utf-8">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js"></script>
<script>
$( document ).ready(function() {

  $('.collapse').on('show.bs.collapse', function () {

    // hide all accordion except the clicked one
    $('.collapse').not(this).collapse('hide');

  });

});

</script>



    </head>
    <body>


  <a href="#content1"  data-toggle="collapse">Content1..</a>
  <a href="#content2"  data-toggle="collapse">Content2</a>
  <a href="#content3"  data-toggle="collapse">Content3</a>
 <br>





 <div id="content1" class="collapse ">
<h1>Content 1 records</h1>

<a href="#content1" class="btn btn-default" data-toggle="collapse">Close </a>

  </div>


 <div id="content2" class="collapse ">
<h1>Content 2 records</h1>

<a href="#content2" class="btn btn-default" data-toggle="collapse">Close</a>

  </div>

 <div id="content3" class="collapse ">
<h1>Content 3 records</h1>

<a href="#content3" class="btn btn-default" data-toggle="collapse">Close</a>

  </div>



</body></html>

现在我必须在反应式中得到它的等价物。我已经安装了引导程序和Reactjs代码,每次单击按钮时都会显示折叠内容。

这里是我对Reactjs.的问题,我希望它只显示为一个折叠的内容,就像上面的jquery中的一样。请如何将此jquery代码转换为reactjs等效项,或者是否有其他选项?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$( document ).ready(function() {

  $('.collapse').on('show.bs.collapse', function () {

    // hide all accordion except the clicked one
    $('.collapse').not(this).collapse('hide');

  });

});

这里是Reactjs代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React, { Component, Fragment } from "react";
import { render } from "react-dom";
import $ from 'jquery';



class Collapse extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
    };
  }





    render() {

      return (
        <span>
          <label>
            <ul>



  <a href="#content1"  data-toggle="collapse">Content1..</a>
  <a href="#content2"  data-toggle="collapse">Content2</a>
  <a href="#content3"  data-toggle="collapse">Content3</a>
 <br />


 <div id="content1" class="collapse ">
<h1>Content 1 records</h1>

<a href="#content1" class="btn btn-default" data-toggle="collapse">Close </a>

  </div>


 <div id="content2" class="collapse ">
<h1>Content 2 records</h1>

<a href="#content2" class="btn btn-default" data-toggle="collapse">Close</a>

  </div>

 <div id="content3" class="collapse ">
<h1>Content 3 records</h1>

<a href="#content3" class="btn btn-default" data-toggle="collapse">Close</a>

  </div>



          </ul>
        </label>
      </span>
    );
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-28 14:30:21

下面是一个示例代码,展示了如何做到这一点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class App extends React.Component {
  constructor(props) {
    super(props);
    this.toggleAccordion = this.toggleAccordion.bind(this);
    this.state = {
      accordion: [true, false, false],
    };
}

  toggleAccordion(tab) {

    const prevState = this.state.accordion;
    const state = prevState.map((x, index) => tab === index ? !x : false);

    this.setState({
      accordion: state,
    });
  }

  render() {
    return (
      <div className='wrapper'>
                <div id="accordion">
                  <Reactstrap.Card className="mb-0">
                    <Reactstrap.CardHeader id="headingOne">
                      <Reactstrap.Button block color="link" className="text-left m-0 p-0" onClick={() => this.toggleAccordion(0)} aria-expanded={this.state.accordion[0]} aria-controls="collapseOne">
                        <h5 className="m-0 p-0">Collapsible Group Item #1</h5>
                      </Reactstrap.Button>
                    </Reactstrap.CardHeader>
                    <Reactstrap.Collapse isOpen={this.state.accordion[0]} data-parent="#accordion" id="collapseOne" aria-labelledby="headingOne">
                      <Reactstrap.CardBody>
                        1. Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non
                        cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird
                        on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred
                        nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft
                        beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
                      </Reactstrap.CardBody>
                    </Reactstrap.Collapse>
                  </Reactstrap.Card>
                  <Reactstrap.Card className="mb-0">
                    <Reactstrap.CardHeader id="headingTwo">
                      <Reactstrap.Button block color="link" className="text-left m-0 p-0" onClick={() => this.toggleAccordion(1)} aria-expanded={this.state.accordion[1]} aria-controls="collapseTwo">
                        <h5 className="m-0 p-0">Collapsible Group Item #2</h5>
                      </Reactstrap.Button>
                    </Reactstrap.CardHeader>
                    <Reactstrap.Collapse isOpen={this.state.accordion[1]} data-parent="#accordion" id="collapseTwo">
                      <Reactstrap.CardBody>
                        2. Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non
                        cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird
                        on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred
                        nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft
                        beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
                      </Reactstrap.CardBody>
                    </Reactstrap.Collapse>
                  </Reactstrap.Card>
                  <Reactstrap.Card className="mb-0">
                    <Reactstrap.CardHeader id="headingThree">
                      <Reactstrap.Button block color="link" className="text-left m-0 p-0" onClick={() => this.toggleAccordion(2)} aria-expanded={this.state.accordion[2]} aria-controls="collapseThree">
                        <h5 className="m-0 p-0">Collapsible Group Item #3</h5>
                      </Reactstrap.Button>
                    </Reactstrap.CardHeader>
                    <Reactstrap.Collapse isOpen={this.state.accordion[2]} data-parent="#accordion" id="collapseThree">
                      <Reactstrap.CardBody>
                        3. Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non
                        cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird
                        on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred
                        nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft
                        beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
                      </Reactstrap.CardBody>
                    </Reactstrap.Collapse>
                  </Reactstrap.Card>
                </div>        
      </div>
    );
  }

}

ReactDOM.render( < App / > ,
  document.getElementById('root')
);
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.wrapper {
  margin: 50px;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/reactstrap/6.0.1/reactstrap.full.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/latest/css/bootstrap.min.css" crossorigin="anonymous">
<div id="root" />

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54404814

复制
相关文章
点击展开显示折叠内容
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/111722.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/12
2.8K0
点击展开显示折叠内容
如何实现文本内容折叠并显示“...查看全部”?
多行文本超过指定行数隐藏超出部分并显示“...查看全部”是一个常遇到的需求,网上也有人实现过类似的功能,不过还是想自己写写看,于是就写了一个vue的组件,本文简单介绍一下实现思路。
winty
2020/12/07
5.1K0
如何实现文本内容折叠并显示“...查看全部”?
技巧:文本超过N行折叠内容并显示“...查看全部”
多行文本超过指定行数隐藏超出部分并显示“...查看全部”是一个常遇到的需求,网上也有人实现过类似的功能,不过还是想自己写写看,于是就写了一个Vue的组件,本文简单介绍一下实现思路。
@超人
2021/02/26
2.8K0
技巧:文本超过N行折叠内容并显示“...查看全部”
技巧:文本超过N行折叠内容并显示“...查看全部”
多行文本超过指定行数隐藏超出部分并显示“...查看全部”是一个常遇到的需求,网上也有人实现过类似的功能,不过还是想自己写写看,于是就写了一个Vue的组件,本文简单介绍一下实现思路。
Nealyang
2021/02/01
2.5K0
技巧:文本超过N行折叠内容并显示“...查看全部”
ReactJS的简单介绍和使用
一、React的家世背景 React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设Instagram 的网站。做出来以后,发现这套东西很好用,就在2013年5月开源了。 Facebook的设计理念是独立、小巧、快速、创新,而React的特点也正说明了这一点。 二、React 更“轻”的MDV框架 先来说一下什么是MDV吧,MDV即Model Driven View,根据model动态生成view。MDV框架将程序员从传
lonelydawn
2018/02/09
1.4K0
reactjs
最近在学习react js,ReactJS是Facebook开发的用于构建用户界面的JAVASCRIPT库,利用其可以实现组件式开发。
用户1394570
2018/08/08
1.3K0
使用正则匹配并显示匹配的内容
最近在解析HTML文件,遇到这样的一个场景。我需要将HTML文件中data-url="xxx"中的xxx查找并显示出来。
大江小浪
2018/07/24
3K0
centos打开windows的ftp 无法显示内容 显示空白内容
centos下gnome打开windows FTP显示空白,无内容,windows下 打开正常。
全栈程序员站长
2022/07/05
6.3K0
centos打开windows的ftp 无法显示内容 显示空白内容
NodeJS和ReactJS,VUEJS的关系
网上找的科普贴,整理了一下发给大家,出处见底部链接。有许多类比的例子不太准确,大家参考下就行。
浩Coding
2019/08/26
6.2K0
NodeJS和ReactJS,VUEJS的关系
dotnet 使用 ShowMeTheXAML 显示 WPF 的 XAML 控件内容
本文来告诉大家一个好用的控件库,这个控件库可以方便用在自己编写示例项目中使用。使用 ShowMeTheXAML 控件库可以将某段 XAML 内容作为字符串文本内容显示出来,方便让其他开发者看到界面以及对应的内容
林德熙
2021/04/02
1.2K0
dotnet 使用 ShowMeTheXAML 显示 WPF 的 XAML 控件内容
使用cookie记录让JS弹出层只显示一次和oneindex使用记录
运用cookie的原理,一个页面只提示一次的DIV提示层。特别适合于页面的功能小提示等。可以做出类似QQ空间的功能提示。
怪兽
2022/09/20
1.5K0
使用reactJS要注意的地方
虽然react使用的jsx可以html和js混编,但是这里的html用的时候有的地方还是和原来的习惯不太一样。这里汇总一些我已经遇到的不一样,还有其他要注意的地方
黒之染
2018/10/19
5960
初学ReactJS,写了一个RadioButtonList组件
 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>React Demo</title> 5 <meta charset="utf-8" /> 6 </head> 7 <body> 8 <script src="Scripts/react.js"></script> 9 <script src="Scripts/JSXTransformer.js"></script> 10 <div id="container1
蒋金楠
2018/01/15
8760
初学ReactJS,写了一个RadioButtonList组件
Hello ReactJS
前言 React学习前先搭好环境,官网的例子看着比较分散。结合webpack就可以体验完整的es6开发流程了。 源码:https://github.com/Ryan-Miao/hello-react-js/releases/tag/0.1 1. 环境搭建 涉及以下几个技术。但从hello world的角度说,目前先不用知道是干嘛的,先用来学习react,后面再去研究各个组件的功能。 Webpack - A module bundler Babel - A Javascript compiler ES6 -
Ryan-Miao
2018/03/13
1.3K0
Hello ReactJS
CSS 控制内容显示行数
-webkit-line-clamp 用于限制块元素显示文本的行数,它是一个不规范的属性,没有出现在 CSS 规范草案中。
很酷的站长
2022/12/16
2.7K0
CSS 控制内容显示行数
ReactJS实现一个简单的评论列表
仔细观察,item 里的字段都来自外界,并非该组件,所以定义成无状态的 function 最好。
JavaEdge
2021/03/18
5670
swift textView内容显示不全
  意见反馈页面有一行提示文字,包含客服QQ,要求qq可点击。为了实现点击功能,这里的文本没有使用UILabel,而是采用了UITextView,使用textView的链接功能。
王大锤
2018/11/07
2.8K0
isomorphic reactjs
web应用从最早静态页面、到php后台框架输出、到mv*为主的SPA、到基于node中层的直出,目前有人提出web的下次改变可能将是基于isomorphic javascript的前后台同构应用。
IMWeb前端团队
2019/12/03
2.8K0
isomorphic reactjs
点击加载更多

相似问题

一次显示一个折叠内容

124

显示和隐藏折叠内容

227

如何在twitter bootstraps弹出窗口中显示链接和更多内容?

10

使用ReactJS隐藏/显示内容

432

一次显示一个<tbody>内容的Jquery折叠html表

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文