react antd-design Select全選功能實例
更新時間:2024年03月22日 09:43:40 作者:熱愛前端的小君同學(xué)
這篇文章主要介紹了react antd-design Select全選功能實例,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
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) //選中時 給 checked 改變狀態(tài)
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';
//正常而言級聯(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} //表示只需要顯示一個Tag,可以不用此屬性
/>,總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
React競態(tài)條件Race Condition實例詳解
這篇文章主要為大家介紹了React競態(tài)條件Race Condition實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11
React替換傳統(tǒng)拷貝方法的Immutable使用
Immutable.js出自Facebook,是最流行的不可變數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)之一。它實現(xiàn)了完全的持久化數(shù)據(jù)結(jié)構(gòu),使用結(jié)構(gòu)共享。所有的更新操作都會返回新的值,但是在內(nèi)部結(jié)構(gòu)是共享的,來減少內(nèi)存占用2023-02-02
Vite+React搭建開發(fā)構(gòu)建環(huán)境實踐記錄
這篇文章主要介紹了Vite+React搭建開發(fā)構(gòu)建環(huán)境實踐,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-09-09
React-native橋接Android原生開發(fā)詳解
本篇文章主要介紹了React-native橋接Android原生開發(fā)詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01
React掌握openapi-typescript-codegen快速生成API客戶端代碼的過程
openapi-typescript-codegen是一個開源工具,用于根據(jù)OpenAPI規(guī)范自動生成TypeScript代碼,包括類型定義和API客戶端代碼,它幫助開發(fā)者節(jié)省手動編寫代碼的時間,提高開發(fā)效率,感興趣的朋友一起看看吧2024-11-11

