react antd-design Select全選功能實(shí)例
更新時(shí)間:2024年03月22日 09:43:40 作者:熱愛前端的小君同學(xué)
這篇文章主要介紹了react antd-design Select全選功能實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
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: '銀聯(lián)二維碼', value: '4' },
{ label: '數(shù)字貨幣', 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) //選中時(shí) 給 checked 改變狀態(tài)
setSelectList(['1', '2', '3', '4', '5'])
// 當(dāng)選的時(shí)候 把所有列表值賦值給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 標(biāo)簽值 */}
{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';
//正常而言級聯(lián)選擇還存在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} //表示只需要顯示一個(gè)Tag,可以不用此屬性
/>,總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解前端路由實(shí)現(xiàn)與react-router使用姿勢
本篇文章主要介紹了詳解前端路由和react-router使用姿勢,詳細(xì)的介紹了react-router的用法,有興趣的可以了解一下2017-08-08
詳解如何優(yōu)雅地在React項(xiàng)目中使用Redux
這篇文章主要介紹了詳解如何優(yōu)雅地在React項(xiàng)目中使用Redux,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12
React Hook 監(jiān)聽localStorage更新問題
這篇文章主要介紹了React Hook 監(jiān)聽localStorage更新問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10
React18+TS通用后臺管理系統(tǒng)解決方案落地實(shí)戰(zhàn)示例
這篇文章主要為大家介紹了React18+TS通用后臺管理系統(tǒng)解決方案落地實(shí)戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
解析React中useMemo與useCallback的區(qū)別
這篇文章主要介紹了React中useMemo與useCallback的區(qū)別,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
react嵌套路由實(shí)現(xiàn)TabBar的實(shí)現(xiàn)
本文主要介紹了react嵌套路由實(shí)現(xiàn)TabBar的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08

