javascript - 如何用 reactjs 折叠 div?

标签 javascript reactjs twitter-bootstrap

我正在使用 reactjs 和 bootstrap v 3.0,但我在那里找不到任何折叠类,所以我在我的 scss 中定义了它。问题是togglebutton不起作用或者在div上没有触发toggleevent:

 toggle(e) {
        console.log('testing e',e)
        if (e.target.class === 'collapse') {
            e.target.className = 'collapse.in'
        } else {
            e.target.className = 'collapse'
        }
    }

这是我的按钮:
<button className="btn btn-block" onClick={() => {
               this.toggle.bind('demo')
               }}>
     Open/close
</button>

如何将 className 从 collapse 更改为 collapse.in,反之亦然?
这是一个代码示例:Codepen

最佳答案

您的 SCSS 和 HTML 都很好,问题在于您如何使用 React。

组件的打开/关闭状态应该用 this.state 中的属性表示,以及 toggle()函数应该简单地切换该属性。 render()最后,函数应该负责在 <div> 上设置正确的 CSS 类。它呈现。

这是您的Codepen updated with my suggestions .

我做了什么:

  • 我在组件构造函数中定义了一个初始状态:如您所见,我设置了 open属性(property)给 false最初;
  • 我重写了toggle()方法,使用 this.setState()切换 open 的值属性(property);
  • 我修改了render()生成 <div> 的类名的函数取决于国家。如果组件状态为打开,则类名将是 "collapse in" , 否则只有 "collapse" .
  • 关于javascript - 如何用 reactjs 折叠 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40629319/

    相关文章:

    javascript - 想要从 componentDidMount 传递数据但它总是未定义

    html - 在 Twitter Bootstrap 中为列设置 100% 高度

    google-chrome - 在 chrome 扩展中,twitter bootstrap css 发生冲突

    javascript - 动画从右下到左上并且不消失

    javascript - Bootstrap 输入文件游标

    javascript - 如何在 React 中使用绑定(bind)?

    javascript - 在渲染的 html 中的 componentDidMount 上添加 javascript 对象

    javascript - Bootstrap 按钮 onclick 不起作用

    javascript - 限制将 prop 传递到 React 组件中

    javascript - 通过javascript更改图像src - 缓存问题