移动端 react + antd-mobile 二级联动(一二级均多选)

本文介绍如何在移动端使用React和antd-mobile库创建一个二级联动选择功能。功能详细说明:数据以树形结构组织,包含一级ID,初始显示一级菜单。选择一级后,二级菜单显示对应的一级下的子项。用户最终可以查看并编辑所选的全部一级和二级选项,支持单个删除和全部清除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前提:数据结构为树形结构(二级数据带一级ID)

功能说明:默认展示一级下拉菜单,选完一级之后,二级的列表数据为选好的所有一级的二级数据,最后点确定之后,展示全部的选择(包括一级和二级)。展示出来的部分可以删除及全部删除。

!!!注意注意:选了一级,没选择二级,会在最后点确定的时候带出全部的二级,如果这个一级下面选了二级,最后只会展示已选择的二级

你需要准备的变量
  const [cascadeData, setCascadeData] = useState([] as any[]);// 品类的全部数据
  const [cascadeId, setCascadeId] = useState([] as string[]);// 选定的全部品类
  const [cascadeVisible, setCascadeVisible] = useState(false);// 一级品类
  const [secondVisible, setSecondVisible] = useState(false);// 二级品类
  const [secondLevel, setSecondLevel] = useState([]as any[]);// 二级列表
  const [selectCategory, setSelectCategory] = useState([] as any[]);// 选定的全部品类对象
  const [selectedFirstObj, setSelectedFirstObj] = useState([] as any[]);// 选定的一级品类
  const [selectedFirstId, setSelectedFirstId] = useState([] as any[]);// 选定的一级品类id
  const [selectedSecondObj, setSelectedSecondObj] = useState([] as any[]);// 选定的二级品类
  const [selectedSecondId, setSelectedSecondId] = useState([] as any[]);// 选定的二级品类id
页面结构
 <Space>
	<div
	  onClick={
   () => {
   
	    setCascadeVisible(true);
	  }}
	  className={
   style.cascadeBtn}
	>
	  {
   selectedFirstId.length ? 
	    `已选${
     selectedFirstId.length}` : '一级品类'} <DownOutline />
	  {
   /* 一级品类 <DownOutline /> */}
	</div>
	{
   !!secondLevel.length && 
	  <div
	    onClick={
   () => {
   
	      setSecondVisible(true);
	    }}
	    className={
   style.cascadeBtn}
	  >
	    {
   selectedSecondId.length ? 
	      `已选${
     selectedSecondId.length}` : '二级品类'} <DownOutline />
	    {
   /* 二级品类 <DownOutline /> */}
	  </div>}
	{
   !!secondLevel.length && 
	  <Button
	    color="primary"
	    size="mini"
	    onClick={
   () => handlerSelectLevel()}
	  >确定
	  <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值