我如何关闭和打开侧边栏onClick

时间:2018-08-30 14:23:59

标签: javascript reactjs debugging slider

每当我使用它时,即使没有单击按钮,侧栏也会始终打开。换句话说,每当刷新浏览器时,侧栏都已打开。我希望将其关闭,只有在单击按钮时,侧栏才会打开。

但是我希望它根据命令打开和关闭。我尝试玩受支持的道具,但仍然没有运气:(。

我正在使用这个https://github.com/balloob/react-sidebar#installation

这是我的App.js文件:

import React from "react";
import Sidebar from "react-sidebar";

class App extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            sidebarOpen: true
        };
        this.onSetSidebarOpen = this.onSetSidebarOpen.bind(this);
    }

    onSetSidebarOpen(open) {
        this.setState({ sidebarOpen: open });
    }

    render() {
        return (
            <Sidebar
                sidebar={<div><b>Sidebar content</b><b>Sidebar content</b><b>Sidebar content</b><b>Sidebar content</b><b>Sidebar content</b><b>Sidebar content</b><b>Sidebar content</b><b>Sidebar content</b></div>}
                open={this.state.sidebarOpen}
                onSetOpen={this.onSetSidebarOpen}
                styles={{ sidebar: { background: "white" } }}
            >
                <button onClick={() => this.onSetSidebarOpen(true)}>
                    Open sidebar
                </button>
            </Sidebar>
        );
    }
}

export default App;

1 个答案:

答案 0 :(得分:2)

首先,如果希望它以关闭状态启动,则将值初始设置为false ..

    this.state = {
        sidebarOpen: false
    };

第二,如果要打开和关闭它,请正常设置onClick-> onClick={this.onSetSidebarOpen}

onSetSidebarOpen() {
    this.setState((prevState) => ({ sidebarOpen: !prevState.sidebarOpen }));
}

通常-当然,它保持打开状态,默认情况下您将值设置为true,并且永远保持为真。