react +MUI checkbox使用


PS:因項目采用MUI,故,在此所講的checkbox組件為MUI里的checkbox

因checkbox組件里 oncheck函數沒法判斷復選框是否選中,故,若直接復用且通過state改變checked屬性,會引起一選全選,不選都不選(因為這里的state掌管着所有checkbox的checked值)。為避免這種情況,有兩種解決方式:

1.將checkbox分離出來;

上圖為確保只有當卡片至少選中一個時刪除按鈕才顯示,采用將其分離的方式。

實現方法:在自己封裝的checkbox里定義了一個全局數組arr,通過props將卡片ID傳給checkbox組件,在調用oncheck函數的時候,當checked值為true,將id push進arr里,否則,將id從arr里移除。(完全可看成是僅對當前checkbox進行操作)。最后將全局數組arr通過 props方式傳遞給父組件(在這里是卡片組件)

代碼片段如下:

 

 

 

 

2.直接復用但不采用state控制checked屬性,通過定義一個全局數組idArr里,記錄所選checkbox的ID,當點擊復選框時,若ID在數組idArr里,則將該ID從數組里移除,若不在數組idArr里,則將其添加進數組。

若id1存在於idArr中,移除id1的方法: idArr.splice(idArr.indexOf(id1),1)

若id1不在idArr中,添加id1的方法: idArr.push(id1)

上圖采用的方法為第二種,當點擊提交時,直接將當前idArr作為參數傳遞,即可使用

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM