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