React如何给某些元素动态添加和删除类?

今天在写项目时遇到了一个简单的需求,一个列表详情界面需要添加编辑和保存功能,刚开始页面只有编辑按钮,点击此按钮之后取消和保存按钮出现,原来的编辑按钮消失,然后再点击取消按钮,取消和保存按钮消失,编辑按钮出现。
先简单说一下实现思路:

  • 把编辑按钮放在一个div里,取消和保存按钮放在一个div里,由于业务需求,我放在了Form表单里了
  • 给编辑按钮和取消按钮分别绑定一个点击事件,就分别叫做 editBtn 和 cancleBtn 吧
  • 给两个Form分别写一个类
.haha{  //编辑按钮的样式
	display: block;
}
.haha1{  //取消和删除按钮的样式
	display: none;
}
  • 给按钮一个初始化状态status=0,如果点击了编辑按钮,status=1,如果再点击了取消按钮,status=0
  • 通过判断状态来给两个div设置className值

让我们来看一下代码

import React, {useState} from 'react';
const [status,setStatus]=useState(0);  //设置初始状态
const editBtn=()=>{
    setStatus(1); //说明点击了编辑按钮
    alert('请开始编辑');
}
const cancleBtn=()=>{
    setStatus(0); //说明是初始化或者点击了取消按钮
}
return (
	<div>
		<Form className={status==0 ? 'haha' : 'haha1'}>
	         <Form.Item>
	            <Button onClick={editBtn}> //绑定点击事件editBtn
	               编辑
	            </Button>
	         </Form.Item>
    	</Form>
	    <Form className={status==1 ? 'haha' : 'haha1'}>
	         <Form.Item>
	            <Button onClick={cancleBtn}>  //绑定点击事件cancleBtn
	               取消
	            </Button>
	            <Button>
	               保存
	            </Button>
	         </Form.Item>
	    </Form>
	</div>
)

在这里用到了三元表达式来赋类名

status==0 ? 'haha' : 'haha1'  //如果状态为0,赋haha类名,如果状态不是0,即状态是1,赋haha1类名

status==1 ? 'haha' : 'haha1'  //如果状态为1,赋haha1类名,如果状态不是1,即状态是0,赋haha类名

最后看一下效果图:
这是初始化状态
在这里插入图片描述

这是点击编辑之后的样式
在这里插入图片描述
点击取消之后也能回到图一。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值