解決react?antd?Table組件使用radio單選框?更新選中數(shù)據(jù)不渲染問題
react antd Table組件使用radio單選框 更新選中數(shù)據(jù)不渲染
之前:
type:'radio' selectedRowKeys:this.state.selectedRowKeys onChange:(selectedRowKeys)=>{ this.setState({ selectedRowKeys }); }
然后在頁面其他地方更新state.selectedRowKeys時,表格中的單選情況沒有發(fā)生改變
比如將selectedRowKeys清空,顯示應(yīng)為所有單選都不選,但是結(jié)果卻沒有發(fā)生變化。
將checkbox當單選用
checkbox這樣子寫是可以的,直接清空有效。
但是需要去設(shè)置checkbox只能選中一個:
type:'checkbox', selectedRowKeys:state.selectedRowKeys, onChange:selectedRowKeys=>{ if(selectedRowKeys.length>1){ selectedRowKeys=[selectedRowKeys[1]]; } this.setState({ selectedRowKeys:selectedRowKeys })
這樣寫不僅多寫了代碼,還會造成一些別的bug,隨便點點就會點出來問題,而且表格表頭部分會有全選的checkbox
這個全選復(fù)選框沒有實際作用,還有誤導(dǎo)作用,造成不好的用戶體驗。
專門去找問題,研究文檔
發(fā)現(xiàn)在Table這一頁特意提示了key,而且每個版本都提示了:
然后去檢查發(fā)現(xiàn)自己的確沒有寫rowKey,加上以后并寫成radio的形式,發(fā)現(xiàn)在其他地方更新selectedRowKeys數(shù)據(jù)能夠觸發(fā)配置的onChange方法。
所以以后使用Table組件時一定不要覺得麻煩、多余,這對于框架性能更好以及避免出現(xiàn)難以發(fā)現(xiàn)的bug都是一個好的習慣。
包括其他有數(shù)組循環(huán)的地方,也要盡量加上key。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
react中使用forEach或map兩種方式遍歷數(shù)組
這篇文章主要介紹了react中使用forEach或map兩種方式遍歷數(shù)組,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09Redux?Toolkit的基本使用示例詳解(Redux工具包)
這篇文章主要介紹了Redux?Toolkit的基本使用,本文結(jié)合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-12-12React實現(xiàn)antdM的級聯(lián)菜單實例
這篇文章主要為大家介紹了React實現(xiàn)antdM的級聯(lián)菜單實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10詳解使用create-react-app快速構(gòu)建React開發(fā)環(huán)境
這篇文章主要介紹了詳解使用create-react-app快速構(gòu)建React開發(fā)環(huán)境,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05