【问题标题】:How do I close and open my sidebar onClick如何关闭和打开我的侧边栏 onClick
【发布时间】:2018-08-30 14:23:58
【问题描述】:

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

但我希望它按命令打开和关闭。我尝试使用支持的道具,但仍然没有运气:(。

我正在使用这个顺便说一句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;

【问题讨论】:

    标签: javascript reactjs debugging slider


    【解决方案1】:

    首先,如果您希望它以关闭状态开始,则将值初始化为 false ..

        this.state = {
            sidebarOpen: false
        };
    

    其次,如果你想让它打开和关闭,正常设置onClick -> onClick={this.onSetSidebarOpen} :

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

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

    【讨论】:

    • 我真的觉得自己像个白痴……我在创建方法、调用函数、重写所有内容、做各种疯狂的事情。我已经想出了比这个问题更琐碎的事情。谢谢你,sagi,很抱歉浪费你的时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-19
    • 2022-01-09
    相关资源
    最近更新 更多