antd table 編輯單元格

技術(shù)背景: react-hook顶燕、antd
優(yōu)勢(shì)方案:方案一

一儡循。方案一(可多個(gè)單元格一起)

官方有例子
思想: 利用form表單

二公黑。方案二(僅限單個(gè)單元格 )

思想: 有點(diǎn)vue的處理方式,利用數(shù)據(jù)標(biāo)志處理顯隱性怜浅,input自己拿值昨凡,再foucs事件利用綁定的唯一id

  1. 變量定義
    const [inputVal, setInputVal] = useState('')
    const [source, setSource] = useState([])
    const [tableData, setTableData] = useState([])    
    const [isEdit, setIsEdit] = useState(false) 
    const [eidtRow, setEidtRow] = useState({})
    const [editInputVal, setEditInputVal] = useState('')  
    const editInputRef = useRef(null)
  1. colums渲染
        {
            title: '備注',
            dataIndex: 'remarkName',
            key: 'remarkName',
            align: 'center',
            editable: true,            
            width: 90,
            render: (text, record)=>{

                if(record.isEdit){
                    console.log('id', record)                    
                    return (
                        <Input
                        id= {`input-${record.id}`}
                        value={ editInputVal }
                        style={{ width: 310 }}
                        placeholder="請(qǐng)輸入需要修改的備注"
                        onPressEnter={(e) => handleSubmitRemarkName(e, record)}
                        onBlur={(e) => handleSubmitRemarkName(e, record)}
                        onChange={(e) => handleChangeInputVal(e)}
                        allowClear
                      />
                    )
                }else {
                    return (
                        <div>
                            <span style={{marginRight: 10}}>{ text }</span>
                            <FormOutlined onClick={() => handleEditRemarkName(record)}/>
                        </div>
                    )                    
                }

            }                
        },

3.各函數(shù)處理

    const handleEditRemarkName = (row) =>{     
        console.log('1', 1234668)        
           setEditInputVal(row.remarkName)
           const table = tableData.map(item => {
               if(item.id === row.id){
                   return {
                       ...item,
                       isEdit: true,
                       inputRef: editInputRef
                   }
               }else {
                   return item
               }
           })
           setTableData(table) 
           setEidtRow(row)  
           setIsEdit(true)                           
    }

    const handleSubmitRemarkName = (e, row) =>{
        const table = tableData.map(item => {
            if(item.id === row.id){
                return {
                    ...item,
                    isEdit: false
                }
            }else {
                return item
            }
        })  
        setTableData(table)         
        setIsEdit(false)    

        const inputVal = e.target.value
        const query = {
            phoneNo: row.phoneNo,
            remarkName: inputVal
        }            
        props.addCommonPhone(query)


    }

    const handleChangeInputVal = (e) => {
      console.log('e',e.target.value)
      setEditInputVal(e.target.value)
      
    }
  1. 聚焦事件實(shí)現(xiàn)
    useEffect(() => {
        console.log('props.commonSource', props.commonSource)
        setSource(props.commonSource)
        setTableData(filterData(props.commonSource, inputVal))
    }, [props.commonSource])

    useEffect(() =>{

    const inputDom = document.querySelector(`#input-${eidtRow.id}`)      
    if(inputDom){
        inputDom.focus({
            cursor: 'start',
          });
    }

    },[isEdit])
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末爽醋,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子便脊,更是在濱河造成了極大的恐慌蚂四,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異遂赠,居然都是意外死亡久妆,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門跷睦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來筷弦,“玉大人,你說我怎么就攤上這事抑诸±们伲” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵蜕乡,是天一觀的道長(zhǎng)奸绷。 經(jīng)常有香客問我,道長(zhǎng)层玲,這世上最難降的妖魔是什么号醉? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮辛块,結(jié)果婚禮上扣癣,老公的妹妹穿的比我還像新娘。我一直安慰自己憨降,他們只是感情好父虑,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著授药,像睡著了一般士嚎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上悔叽,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天莱衩,我揣著相機(jī)與錄音,去河邊找鬼娇澎。 笑死笨蚁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的趟庄。 我是一名探鬼主播括细,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼戚啥!你這毒婦竟也來了奋单?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤猫十,失蹤者是張志新(化名)和其女友劉穎览濒,沒想到半個(gè)月后呆盖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡贷笛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年应又,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乏苦。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡丁频,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出邑贴,到底是詐尸還是另有隱情席里,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布拢驾,位于F島的核電站奖磁,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏繁疤。R本人自食惡果不足惜咖为,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望稠腊。 院中可真熱鬧躁染,春花似錦、人聲如沸架忌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叹放。三九已至饰恕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間井仰,已是汗流浹背埋嵌。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留俱恶,地道東北人雹嗦。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像合是,于是被迫代替她去往敵國(guó)和親了罪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • @[TOC](antd Table合并單元格) 示例數(shù)據(jù) 原始數(shù)組 原始數(shù)據(jù) 使用Table展示如下 name是本...
    Dear丶BQ閱讀 2,836評(píng)論 1 1
  • 最近接到一個(gè)小需求端仰,將頁面上的原本僅展示信息的表格增加一個(gè)功能捶惜,即支持直接在頁面上進(jìn)行編輯。原表格也是借助 ant...
    悄敲閱讀 14,874評(píng)論 0 3
  • 一荔烧、創(chuàng)建項(xiàng)目 npm v5.2.0引入的一條命令(npx)吱七,引入這個(gè)命令的目的是為了提升開發(fā)者使用包內(nèi)提供的命令行...
    三也視界閱讀 2,236評(píng)論 0 2
  • 目的 如果你使用 Vue 開發(fā)項(xiàng)目,那么你一定用過或聽過大名鼎鼎的 Element-UI[https://elem...
    CondorHero閱讀 5,605評(píng)論 0 0
  • 前言 當(dāng)前問題使用的ivew 版本:3.4.2后續(xù)版本可能會(huì)實(shí)現(xiàn)相關(guān)功能鹤竭,請(qǐng)留意官方文檔踊餐。 背景 最近做的項(xiàng)目使用...
    西瓜魚仔閱讀 4,916評(píng)論 1 1