ReactJs打开后折叠切换关闭

brjng4g3  于 2022-11-29  发布在  React
关注(0)|答案(1)|浏览(129)

我正在尝试在我的表单上执行一个可折叠的元素。我正在使用react-bootstrap。
我预期的行为如下:一旦我单击按钮“click”,就会出现放置在<Collapse />中的内容,并一直停留到我再次单击同一按钮。
我的行为:一旦我点击按钮“点击”,一个折叠的元素出现,然后消失。
我刚刚从react-bootstrap Collapse示例(https://react-bootstrap.github.io/utilities/transitions/)的文档中复制了代码。他们网站上的示例工作得很好。我注意到两个示例(在我的机器上和从文档中)设置的样式是相同的。那么,为什么会发生这种情况,如何修复它呢?

  • Index.cshtml
<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    <link rel="stylesheet" href="~/dist/bundle.css" />
  </head>
  <body>
    <header>
      <nav class="navbar navbar-expand fixed-top dev">
        <div>Character bio</div>
      </nav>
    </header>

    <main role="main" class="container mt-5">

      <div id="content" class="row text-center mt-5">

      </div>

      <div class="row text-center mt-5 mb-3">
        <div class="col">
          <p className="text-muted">© 2018</p>
        </div>
      </div>
    </main>

    <script src="~/dist/bundle.js"></script>
  </body>
</html>
  • app.jsx
import "bootstrap/dist/css/bootstrap.min.css";
import "../css/common.css";

import { library } from "@fortawesome/fontawesome-svg-core";
import { faDice } from "@fortawesome/free-solid-svg-icons";
import { faHighlighter } from "@fortawesome/free-solid-svg-icons";

import React from "react";
import ReactDOM from "react-dom";
import Routes from "./routing/routes.jsx";
import { BrowserRouter, Link } from "react-router-dom";

import { Button, Collapse, Well } from "react-bootstrap";

library.add(
  faDice,
  faHighlighter
);

class Example extends React.Component {
  constructor(props, context) {
    super(props, context);

    this.state = {
      open: false
    };
  }

  render() {
    return (
      <div>
        <Button onClick={() => this.setState({ open: !this.state.open })}>
          click
        </Button>
        <Collapse in={this.state.open}>
          <div>
            <Well>
              Anim pariatur cliche reprehenderit, enim eiusmod high life
              accusamus terry richardson ad squid. Nihil anim keffiyeh
              helvetica, craft beer labore wes anderson cred nesciunt sapiente
              ea proident.
            </Well>
          </div>
        </Collapse>
      </div>
    );
  }
}

ReactDOM.render(
  <Example />,
  document.getElementById("content")
)

module.hot.accept();

我已经在谷歌上搜索了这个问题,什么也没有发现(即从堆栈溢出链接不工作)。

j5fpnvbx

j5fpnvbx1#

一夜之后,我有了一个全新的想法,我意识到(只是准确地重读了文档)我应该使用Bootstrap v3,而不是v4(我想使用的)。问题是,v4不知何故没有.collpase.in类。快速修复的方法是用display: block添加这个类。现在它工作得很好。

相关问题