React JS:可折叠边栏

时间:2016-07-12 08:06:47

标签: javascript html css reactjs

我正在使用React JS来创建响应式UI。我想创建一个可折叠的侧边栏,如下所示:

enter image description here enter image description here

因此,当我单击垂直条(图形信息)时,它应该像第二张图片一样展开。我在Jsfiddle Sample code看到了一些例子。但是在这里,他们使用静态按钮来控制崩溃。我可以使用任何图书馆吗?或者任何代码建议?

我正在学习React JS。所以任何帮助或建议都将不胜感激。

3 个答案:

答案 0 :(得分:6)

您可以使用与小提琴中的按钮相同的按钮,但将其放在侧边栏组件中。

I've updated the fiddle

React之美正在分离国家。我想是这样的:

  1. 我想要一些全局状态(比如,在商店中),说明是否应该显示侧边栏
  2. 我希望我的侧边栏组件基于该道具隐藏/显示
  3. 我将从我想要的任何地方更改/切换该值,并相信该组件会相应地自行更改。
  4. 所以Parent成为(现在将函数传递给SideBar

    var Parent = React.createClass({
      getInitialState: function(){
        return {sidebarOpen: false};
      },
      handleViewSidebar: function(){
        this.setState({sidebarOpen: !this.state.sidebarOpen});
      },
      render: function() {
        return (
          <div>
            <Header onClick={this.handleViewSidebar} />
            <SideBar isOpen={this.state.sidebarOpen} toggleSidebar={this.handleViewSidebar} />
            <Content isOpen={this.state.sidebarOpen} />
          </div>
        );
      }
    });
    

    并且SideBar变为(添加一个调用该函数的按钮):

    var SideBar = React.createClass({
      render: function() {
        var sidebarClass = this.props.isOpen ? 'sidebar open' : 'sidebar';
        return (
          <div className={sidebarClass}>
            <div>I slide into view</div>
                    <div>Me too!</div>
            <div>Meee Threeeee!</div>
            <button onClick={this.props.toggleSidebar} className="sidebar-toggle">Toggle Sidebar</button>
            </div>
        );
      }
    });
    

答案 1 :(得分:1)

您可以使用React Offcanvas组件来实现此功能。 以下是安装offcanvas组件的链接。

https://github.com/vutran/react-offcanvas

答案 2 :(得分:1)

我没有使用幻灯片抽屉或react-sidebar之类的任何软件包来实现侧面抽屉。

您可以在我的GitHub帐户 Side Drawer 中检出 GhostWolfRider

输出图像以供参考:

幻灯片之前:

enter image description here

幻灯片后:

enter image description here