首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用不带this.state的自定义按钮触发AntDesign (React) sider

AntDesign 是一个基于 React 的 UI 组件库,它提供了丰富的组件,方便开发者快速构建优雅的界面。在 AntDesign 中,Sider 是一个常用的组件,用于实现侧边栏导航的功能。

在 React 中使用 AntDesign 的 Sider 组件,可以通过自定义按钮触发的方式来实现。具体步骤如下:

  1. 首先,确保已经安装并引入了 AntDesign 的相关依赖。可以通过以下方式来安装:
代码语言:txt
复制
npm install antd

然后在代码中引入 Sider 组件:

代码语言:txt
复制
import { Sider } from 'antd';
  1. 在 React 组件中,创建一个按钮,并设置一个点击事件处理函数。点击按钮时,将触发 Sider 的展开或收起状态的切换。
代码语言:txt
复制
import React, { useState } from 'react';
import { Sider, Button } from 'antd';

const MyComponent = () => {
  const [siderCollapsed, setSiderCollapsed] = useState(false);

  const handleToggleSider = () => {
    setSiderCollapsed(!siderCollapsed);
  };

  return (
    <div>
      <Button onClick={handleToggleSider}>Toggle Sider</Button>
      <Sider collapsed={siderCollapsed}>
        {/* Sider 内容 */}
      </Sider>
    </div>
  );
};

export default MyComponent;

在上述代码中,使用 useState 钩子来定义一个状态变量 siderCollapsed 和一个更新状态的函数 setSiderCollapsed。按钮的点击事件处理函数 handleToggleSider 被调用时,通过调用 setSiderCollapsed 函数来切换 siderCollapsed 状态的值。

  1. 在 Sider 组件中,根据 siderCollapsed 状态的值来控制侧边栏的展开或收起。
代码语言:txt
复制
import React from 'react';
import { Sider } from 'antd';

const MyComponent = () => {
  // ...

  return (
    <div>
      {/* ... */}
      <Sider collapsible collapsed={siderCollapsed}>
        {/* Sider 内容 */}
      </Sider>
    </div>
  );
};

export default MyComponent;

通过设置 Sider 组件的 collapsible 属性为 true,可以使侧边栏具有折叠功能。并且根据 siderCollapsed 的值来设置 collapsed 属性,以控制侧边栏的展开或收起状态。

需要注意的是,上述代码中的 MyComponent 组件只是示例,实际应用中需要根据具体的需求来设计和组织代码。

推荐的腾讯云相关产品:腾讯云云开发(Tencent Cloud CloudBase)是腾讯云提供的云原生应用开发平台,它提供了前端开发框架、云函数、数据库等基础设施和工具,帮助开发者快速搭建和部署云原生应用。

腾讯云产品介绍链接:腾讯云云开发

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

React 折腾记 - (4) 侧边栏联动Tabs菜单-增强版(结合Mobx)

---- 功能点 在上个版本功能基础上梳理,剔除一些BUG,基本都会触发联动 重定向 关闭单一标签/关闭其他标签 动态追加标签 浏览器前进后退功能 同子域,菜单会保持展开 依赖 :antd/styled-components.../mobx/mobx-react/react ---- 实现思路 把遍历匹配扔到状态里面去匹配,可以减少挺多代码量 从布局容器触发匹配(这样初始化就能让动态菜单正常) 借助getDerivedStateFromProps...和getSnapshotBeforeUpdate这类React 16.3+特性实现侧边栏联动 动态菜单只操作mobx共享状态 ---- 代码 布局缓存活动路由关键代码 // 路由容器那个组件...} from 'mobx-react'; // antd import { Layout, Menu, Icon } from 'antd'; const { Sider } = Layout; const...状态内很难结合react-router 4进行跳转 虽然还有一些什么mobx-router这类可以整合自定义浏览历史对象,不想用 所以跳转都是从外部触发了..

3.7K41
  • React 折腾记 - (3) 结合Mobx实现一个比较靠谱动态tab水平菜单,同时关联侧边栏

    单个删除和删除其他标签 只有一个时候是不允许关闭,所以也不会显示关闭按钮,关闭其他也不会影响唯一 ? ? 多tag换行 ?...---- 基础环境 mobx & mobx-react react-router-dom v4 styled-components react 16.4.x antd 3.8.x 为了保持后台风格一致化...结合路由进行响应 目标 点击tab展示页面内容,同时关联侧边栏菜单 tab自身可以关闭,注意规避只有一个时候不显示关闭按钮,高亮 杜绝重复点击tab时候(tab和路由匹配情况),再次渲染组件...icon,这样把icon同步到水平菜单就比较好看了,目前水平都是直接写死 加上水波纹动效,目前没有..就是MD风格点一下扩散那种 拖拽,这样可以摆出更符合自己使用习惯水平菜单 固定额外不被消除标签,...} from 'mobx-react'; // antd import { Layout, Menu, Icon } from 'antd'; const { Sider } = Layout; const

    3.2K20

    React组件内事件传参 实现tab切换

    组件内默认onClick事件触发函数actionClick, 是不带参数, 不带参数写法: 如onClick= { actionItem } 带参数写法, onClick = { this.activateButton.bind...(this, 0) } 下面是一个向组件内函数传递参数小例子 需求: 在页面的底部, 有四个按钮, 负责切换内容, 当按钮被点击时, 变为激活状态, 其余按钮恢复到未激活状态 分析: 我们首先要创建点击事件处理函数..., 当按钮被点击时, 将按钮id作为参数发送给处理函数, 处理函数激活对应当前id按钮, 并将其余三个按钮调整到未激活状态 实现: 用组件state创建一个含有四个元素一维数组, 四个元素默认为零...核心代码: import 'babel-polyfill'; import React from 'react'; import ReactDOM from 'react-dom'; import '....(props); this.state = { markArray: [0, 0, 0, 0], itemClassName

    1.2K50

    React基础(6)-React中组件数据-state

    ,想要使组件具备交互能力,那么需要有触发该组件基础数据模型改变能力,那么此时就需要使用state 一旦组件状态(数据)发生更改,组件就会自动调用render函数重新渲染UI,更改这个state状态是通过...this.setState方法来触发实现 下面我们从一个简单点击按钮,显示和隐藏效果开始: 效果如下所示: 连续点击按钮,上方itclanCoder文本在显示和隐藏进行切换,当状态为true时,...在上面的Button组件内,通过对this.state赋值,完成了对该Button组件内部state初始化 注意: this.state放置位置:应当放在构造器函数内进行使用,否则是会报错...this.state进行更改,而是通过React内置提供一个setState方法进行触发 为了解释不能直接更改this.state,我们来看另一个加减数字例子,代码如下所示 importReact...,既然组件没有重新渲染,页面上UI这个this.state当然不会有任何变化 但是ReactsetState方法却能够触发页面的渲染,它可以接收一个对象或者函数 正确写法应当是:利用setState

    6.1K00

    React基础语法06-事件对象应用

    / react模板注释,和平时不太一样,使用快捷键ctrl+/ 事件对象定义: 在触发DOM上某个事件时候,会产生一个事件对象event,这个对象中包含着所有与事件有关信息。...当我们触发run方法时候,想监听事件方法时候,需要写出event,打印出来看这个事件对象是什么东西,打开控制台看一下。 run=(event)=>{ console.log(event) } ?...实际应用: 应用1:改变dom节点颜色 比如:当我们点击按钮时候,需要让按钮颜色改变一下,变成红色。 首先获取当前执行事件dom节点。...应用2:获取dom属性 获取当前执行事件button按钮自定义属性 run=(event)=>{ //console.log(event) event.target.style.background...定义数据 this.state = { msg: '我是王小婷定义数据OO' } } run = (event) => {

    56630

    React学习(六)-React中组件数据-state

    ,想要使组件具备交互能力,那么需要有触发该组件基础数据模型改变能力,那么此时就需要使用state 一旦组件状态(数据)发生更改,组件就会自动调用render函数重新渲染UI,更改这个state状态是通过...this.setState方法来触发实现 下面我们从一个简单点击按钮,显示和隐藏效果开始: 效果如下所示: 连续点击按钮,上方itclanCoder文本在显示和隐藏进行切换,当状态为true时,...在上面的Button组件内,通过对this.state赋值,完成了对该Button组件内部state初始化 注意: this.state放置位置:应当放在构造器函数内进行使用,否则是会报错...this.state进行更改,而是通过React内置提供一个setState方法进行触发 为了解释不能直接更改this.state,我们来看另一个加减数字例子,代码如下所示 import React...但是ReactsetState方法却能够触发页面的渲染,它可以接收一个对象或者函数 正确写法应当是:利用setState进行对组件state更改 handleBtnIncrease() {

    3.6K20

    造一个 react-error-boundary 轮子

    虽然这个是后端异常问题,但是前端也不应该出现白屏。对于这种异常情况,应该使用 React 提供 “Error Boundary 错误边界特性” 来处理。...在 fallback 组件里找个按钮绑定 props.resetErrorBoundary 来触发重置逻辑 第四步:监听渲染以重置 上面的重置逻辑简单也很实用,但是有时也会有局限性:触发重置动作只能在...这里注意这里 componentDidUpdate 钩子逻辑,假如某个 key 是触发 error 元凶,那么就有可能触发二次 error 情况: xxxKey 触发了 error,组件报错 组件报错导致...至此,我们拥有了两种可以实现重置方式了: 方法 触发范围 使用场景 思想负担 手动调用 resetErrorBoundary 一般在 fallback 组件里 用户可以在 fallback 里手动点击...我来提供一种使用 React Hook 实现方式: /** * 自定义错误 handler * @param givenError */ function useErrorHandler<P=

    1.2K10

    React--13:引出生命周期

    ---- 这是我参与8月更文挑战第20天,活动详情查看:8月更文挑战 例子: 点击按钮,文字从0变为1,再从1变为0 点击按钮,让组件消失 给按钮加点击事件 卸载组件 API:unmountComponentAtNode...我们将定时函数写到类中发现报错了,注意类中是不可以随便写代码。类中可以写:构造器、自定义函数、赋值语句、static声明赋值语句。 所以定时方法不能写在这。我们能放在leave中吗?...引发了一个无限递归。 原因:render中定时器每200ms执行一次,每次都会更改状态state,state改变就会触发render对页面进行渲染。...因为componentDidMount是跟render同一级别的,是React创建类实例对象之后弄出来。它this指向是不会丢失。...在点击按钮时候。 使用clearInterval() 方法,需要定时器id,才能清除定时器。 给setInterval 挂载到实例自身this.timer = setInterval 。

    72330

    React---组件生命周期

    一、理解 组件从创建到死亡它会经历一些特定阶段。 React组件中包含一系列勾子函数(生命周期回调函数), 会在特定时刻调用。 我们在定义组件时,会在特定生命周期回调函数中,做特定工作。...更新阶段: 由组件内部this.setSate()或父组件重新render触发 shouldComponentUpdate() // 控制组件更新“阀门” componentWillUpdate()...更新阶段: 由组件内部this.setSate()或父组件重新render触发 getDerivedStateFromProps // 若state值在任何时候都取决于props,那么可以使用getDerivedStateFromProps...现在使用会出现警告,下一个大版本需要加上UNSAFE_前缀才能使用,以后可能会被彻底废弃,不建议使用。...= {count:0} 10 } 11 12 //加1按钮回调 13 add = ()=>{ 14

    98510

    React基础(7)-React事件处理

    onClick={ this.handleBtnClick.bind(this) }>按钮 使用这种bind直接绑定,每次渲染组件,都会创建一个新函数,一般而言,这种写法也没什么问题...scroll),表单按钮提交,商城抢购疯狂点击(触发mousedown),而实时搜索(keyup,input),拖拽等 当你频繁触发用户界面时,会不停触发事件处理函数,换而言之,当出现连续点击...,推荐使用第二种函数节流方式 函数防抖 定义:防止抖动,重复触发,频繁操作,核心在于,延迟事件处理函数执行,一定时间间隔内只执行最后一次操作,例如:表单多次提交,推荐使用防抖 换句话说,也就是当连续触发事件时并没有执行事件处理函数...函数以及不封装throttle函数,你会发现,当你点击按钮时,你连续点多少次,它会不断触发事件处理函数,如果是一个表单提交按钮,使用函数节流就很好优化了代码了 不加函数节流效果:如下所示: ?...假如这是一个表单提交按钮,你点击多少次,就向服务器请求多少次,这显然是有问题,如果你用函数节流就很好解决这个问题 上面说完了React函数节流,那么函数防抖又怎么实现呢?

    8.4K41
    领券