javascript - 如何在 Reactjs 中使用数据目标和数据切换?

标签 javascript reactjs twitter-bootstrap bootstrap-4 frontend

我正在转换静态 HTML使用 Bootstrap 到 React.js 的站点
这里有几个 div 只在 data-target 和 data-toggle 上打开。

<div className="card-header" id="headingFive">
   <h5 className="mb-0">
      <button
            className="btn btn-link"
            type="button"
            data-toggle="collapse"
            data-target="#collapseFive"
            aria-expanded="true"
            aria-controls="collapseOne">
            Site Wide Events
      </button>
    </h5>
</div>

<div
   id="collapseFive"
   className="collapse show"
   aria-labelledby="headingFive"
   data-parent="#accordionThree">
    <div className="card-body">
        <div className="row">
            <div className="col wall">
                <h4 className="text-center">12</h4>
                <p className="text-center">Target</p>
            </div>
            <div className="col">
                <h4 className="text-center">13</h4>
                <p className="text-center">Actual</p>
            </div>
        </div>
    </div>
</div>

我不想使用任何其他 npm相同的模块。

我试过这个但无法解决。
componentDidUpdate() {
    $('.collapse').bootstrapToggle();
}

最佳答案

Bootstrap 5(2020 年更新)
不再需要 jQuery,因此 Bootstrap 5 更易于在 React 中使用。使用新的命名空间 data-bs- 属性作为 explained here 或使用 React 的 useEffect useState 钩子(Hook),如 this answer 中所述。
Bootstrap 4(原始问题)
如果您不想使用 jQuery 或 react-bootstrap,您可以创建一个方法来切换折叠导航栏上的 show 类,如下所示...

class Navbar extends React.Component {
    
    constructor(props) {
        super(props);
        this.state = { showNav: true };
        this.toggleNav = this.toggleNav.bind(this);
    }
    
    toggleNav() {
        this.setState({ 
            showNav: !this.state.showNav
        })
    }
    
    render() {
        const { showNav } = this.state
        
        return (
        <div className="navbar navbar-expand-lg navbar-light bg-light">
            <a className="navbar-brand" href="#">Navbar</a>
            <button className="navbar-toggler" type="button" onClick={this.toggleNav}>
                <span className="navbar-toggler-icon"></span>
            </button>
            <div className={(showNav ? 'show' : '') + ' collapse navbar-collapse'}>
                <ul className="navbar-nav mr-auto">
                    <li className="nav-item">
                        <a className="nav-link" href="#">Link</a>
                    </li>
                    ...
                </ul>
            </div>
        </div>
        );
    }
}
Example with Navbar Collapse

Example with Collapse

关于javascript - 如何在 Reactjs 中使用数据目标和数据切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59067149/

相关文章:

ReactJS - 托管复选框组

css - 不使用 Tailwind CSS 的表格

asp.net-mvc - ASP.NET MVC 5 基于用户角色自定义 Bootstrap 导航栏

eclipse - Eclipse 中的 CLASSPATH "bootstrap entries"和 "user entries"有什么区别?

javascript - 如何使用 javascript 或 jquery 在页面加载时打印 pdf 文件

javascript - 设计一个 Javascript 对象,根据 new Date() 作为字符串输出到 console.log

javascript - Node 终端动画不起作用(它只显示数组中的前两项)

javascript - Casperjs 谷歌身份验证弹出窗口

css - .well 类中的垂直居中 Bootstrap btn

javascript - 在模态中自动单击按钮