react antd-design Select全选功能实例

 更新时间:2024年03月22日 09:43:40   作者:热爱前端的小君同学  
这篇文章主要介绍了react antd-design Select全选功能实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

react antd-design Select全选功能

效果一

完整代码

import { useEffect, useState, useRef } from 'react'
import { Button, message, Select, Checkbox } from 'antd'
import ProTable from '@ant-design/pro-table';
 
const { Option } = Select;
 
const initialParams = {
  tradeWay: ['1', '2', '3', '4', '5']
}
 
const tradeList = [
  { label: '微信', value: '1' },
  { label: '支付宝', value: '2' },
  { label: '银行卡', value: '3' },
  { label: '银联二维码', value: '4' },
  { label: '数字货币', value: '5' }
]
 
const Index = () => {
  const formRef = useRef()
  const [selectState, setCheckStatus] = useState(true)
  const [selectList, setSelectList] = useState(['1', '2', '3', '4', '5'])
 
  const columns = [
    {
      title: '交易方式',
      dataIndex: 'tradeWay',
      width: 180,
      initialValue: ['1', '2', '3', '4', '5'],
      valueEnum: tradeValue,
      renderFormItem: () => (
        <Select
          mode="multiple"
          onChange={value => {
            setSelectList(value)
            if (formRef.current) {
              formRef.current.setFieldsValue({ tradeWay: value })
            }
          }}
          dropdownRender={allSelectValue => (
            <div>
              <div style={{ padding: '4px 8px 8px 8px', cursor: 'pointer' }}>
                <Checkbox
                  checked={selectState && selectList?.length === tradeList?.length}
                  onChange={e => {
                    if (e.target.checked === true) {
                      setCheckStatus(true) //选中时 给 checked 改变状态
                      setSelectList(['1', '2', '3', '4', '5'])
                      // 当选的时候 把所有列表值赋值给tradeWay
                      if (formRef.current) {
                        formRef.current.setFieldsValue({
                          tradeWay: tradeList?.map(item => item.value)
                        })
                      }
                    } else {
                      setCheckStatus(false)
                      setSelectList([])
                      if (formRef.current) {
                        formRef.current.setFieldsValue({ tradeWay: [] })
                      }
                    }
                  }}
                >
                  全部
                </Checkbox>
              </div>
              {/* Option 标签值 */}
              {allSelectValue}
            </div>
          )}
        >
          {tradeList?.map(item => (
            <Option key={item.value} value={item.value}>
              {item.label}
            </Option>
          ))}
        </Select>
      )
    },
  ]
 
  return (
      <ProTable
        formRef={formRef}
        rowKey="id"
        toolBarRender={null}
        onSubmit={...}
        onReset={...}
        manualRequest
        request={params => {
          ...
        }}
        columns={columns}
      />
  )
}
 
export default Index

效果二

import { Cascader } from 'antd';
 
//正常而言级联选择还存在children属性,且值为Array格式
//我们只是想单纯一列下拉多选带勾选框,所以把children属性去掉即可
const options = [
  {
    label: 'test1',
    value: 'test1', 
  },
  {
    label: 'test2',
    value: 'test2',
  },
  {
    label: 'test3',
    value: 'test3',
  },
];
 
const onChange = (value) => {
  console.log(value);
}
//然后直接使用就好了
 
<Cascader
    options={options}
    onChange={onChange}
    multiple
    allowClear
    maxTagCount={1} //表示只需要显示一个Tag,可以不用此属性
/>,

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持程序员之家。

相关文章

  • ReactNative集成个推消息推送过程详解

    ReactNative集成个推消息推送过程详解

    这篇文章主要为大家介绍了ReactNative集成个推消息推送过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • react中Hooks的理解和用法小结

    react中Hooks的理解和用法小结

    Hook是 React 16.8 的新增特性,它可以让你在不编写class的情况下使用state以及其他的React特性,这篇文章主要介绍了react中Hooks的理解和用法,需要的朋友可以参考下
    2023-05-05
  • react ant-design Select组件下拉框map不显示的解决

    react ant-design Select组件下拉框map不显示的解决

    这篇文章主要介绍了react ant-design Select组件下拉框map不显示的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • React前端框架实现原理的理解

    React前端框架实现原理的理解

    React是前端开发每天都用的前端框架,自然要深入掌握它的原理。我用?React?也挺久了,这篇文章就来总结一下我对?react?原理的理解,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2022-07-07
  • 在React 组件中使用Echarts的示例代码

    在React 组件中使用Echarts的示例代码

    本篇文章主要介绍了在React 组件中使用Echarts的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • react表单受控的实现方案

    react表单受控的实现方案

    数据的受控控制一直是react里的一个痛点,当我想要实现一个输入框的受控控制时,我需要定义一个onChange和value,手动去实现数据的绑定,本文小编给大家介绍了react表单受控的实现方案,需要的朋友可以参考下
    2023-12-12
  • react 应用多入口配置及实践总结

    react 应用多入口配置及实践总结

    这篇文章主要介绍了react 应用多入口配置及实践总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • react-native之ART绘图方法详解

    react-native之ART绘图方法详解

    本篇文章主要介绍了react-native之ART绘图方法详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • 利用React实现一个有点意思的电梯小程序

    利用React实现一个有点意思的电梯小程序

    这篇文章主要为大家详解介绍了如何利用React实现一个有点意思的电梯小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-08-08
  • React路由封装的实现浅析

    React路由封装的实现浅析

    路由是React项目中相当重要的概念,对于功能较为复杂的网页来说,必然会涉及到不同功能间的页面跳转,本篇文章将对React官方维护的路由库React-Router-Dom的使用和常用组件进行讲解,同时对路由组件传递param参数的方式进行讲解,希望对各位读者有所参考
    2022-08-08

最新评论

?


http://www.vxiaotou.com