React JS:可折叠的侧边栏

新手上路,请多包涵

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

在此处输入图像描述在此处输入图像描述

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

我正在学习 React JS。因此,我们将不胜感激任何帮助或建议。

原文由 Mohammad Saifullah 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

您可以像在小提琴中一样拥有一个按钮,但将其放在侧边栏组件中。

我已经更新了小提琴

React 的美妙之处在于分离状态。我是这样想的:

  1. 我想要一些全局状态(比如在商店中)来说明侧边栏是否应该显示
  2. 我希望我的侧边栏组件根据该道具隐藏/显示
  3. 我将从我想要的任何地方更改/切换该值,并相信该组件会相应地自行更改。

所以 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>
    );
  }
});

原文由 David Gilbertson 发布,翻译遵循 CC BY-SA 3.0 许可协议

我在没有使用任何这些包(如 slide-drawer 或 react-sidebar)的情况下实现了侧抽屉。

您可以在我的 GitHub 帐户 GhostWolfRider 中查看 Side Drawer

输出图像供参考:

幻灯片前:

在此处输入图像描述

幻灯片后:

在此处输入图像描述

原文由 Krunal Rajkotiya 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏