ahook-状态切换hooks-useToggle

告别useState去设置状态

原来写法

javascript 复制代码
import React from 'react';
import { useState } from 'ahooks';

export default () => {
  const [state, setState] = useState (false);

  return (
    <div>
      <p>Effects:{`${state}`}</p>
        <button type="button" onClick={()=> setState(!state)}>
          State
        </button>
    </div>
  );
};

useToggle

用于在两个状态值间切换的 Hook

代码演示

javascript 复制代码
import React from 'react';
import { useToggle } from 'ahooks';

export default () => {
  const [state, { toggle, setLeft, setRight }] = useToggle();

  return (
    <div>
      <p>Effects:{`${state}`}</p>
      <p>
        <button type="button" onClick={toggle}>
          Toggle
        </button>
        <button type="button" onClick={setLeft} style={{ margin: '0 8px' }}>
          Toggle False
        </button>
        <button type="button" onClick={setRight}>
          Toggle True
        </button>
      </p>
    </div>
  );
};

其中:
state: 表示状态值
toggle, setLeft, setRight: 分别表示切换状态值的方法

useToggle:hooks,也会有默认值或者两个值进行切换

javascript 复制代码
import React from 'react';
import { useToggle } from 'ahooks';

export default () => {
  const [state, { toggle, set, setLeft, setRight }] = useToggle('Hello', 'World');

  return (
    <div>
      <p>Effects:{state}</p>
      <p>
        <button type="button" onClick={toggle}>
          Toggle
        </button>
        <button type="button" onClick={() => set('Hello')} style={{ margin: '0 8px' }}>
          Set Hello
        </button>
        <button type="button" onClick={() => set('World')}>
          Set World
        </button>
        <button type="button" onClick={setLeft} style={{ margin: '0 8px' }}>
          Set Left
        </button>
        <button type="button" onClick={setRight}>
          Set Right
        </button>
      </p>
    </div>
  );
};




相关推荐
胚芽鞘68113 分钟前
vue + element-plus自定义表单验证(修改密码业务)
javascript·vue.js·elementui
小满zs17 分钟前
React-router v7 第四章(路由传参)
前端·react.js
angushine19 分钟前
Gateway获取下游最终响应码
java·开发语言·gateway
小陈同学呦26 分钟前
聊聊双列瀑布流
前端·javascript·面试
西贝爱学习37 分钟前
数据结构:C语言版严蔚敏和解析介绍,附pdf
c语言·开发语言·数据结构
程丞Q香40 分钟前
python——学生管理系统
开发语言·python·pycharm
晓纪同学1 小时前
C++ Primer (第五版)-第十三章 拷贝控制
java·开发语言·c++
键指江湖1 小时前
React 在组件间共享状态
前端·javascript·react.js
烛阴1 小时前
零基础必看!Express 项目 .env 配置,开发、测试、生产环境轻松搞定!
javascript·后端·express
诸葛亮的芭蕉扇1 小时前
D3路网图技术文档
前端·javascript·vue.js·microsoft