起因
原來的程式碼
//tsx部分
<BaseTable options={tableData.options} columns={tableData.columns} data={tableData.data}/>
const selectKeys = ref<string[]>([]) // 表格配置 const handleRowSelection = { onChange: (selectedRowKeys: string[], selectedRows: ISeatItemData[]) => { selectKeys.value = selectedRowKeys }, }
頁面上有個設為班長按鈕,在勾選了某條資料後,點選呼叫了介面,重新整理了當前列表,這條勾選的資料還在,原因是這條資料主鍵key值還在,手動在列表中設 selectKeys.value = [] 只能改變資料為空,介面依舊會展示選中狀態,怎麼改呢?檢視了antd table文件,因為是第一次用antd +tsx寫專案,而且我這個table元件封裝了一層,找到了 rowSelection 方法簡介,這裡貼個連結 rowSelection
const selectKeys = ref<string[]>([])
const handleRowSelection = { selectedRowKeys:selectKeys, // 這裡很關鍵 onChange: (selectedRowKeys: string[], selectedRows: ISeatItemData[]) => { selectKeys.value = selectedRowKeys }, }
selectedRowKeys取定義好的selectKeys,注意(VUE3的)不要帶 .value
然後在重新整理列表的介面給它selectKeys.value = [] 就解決問題了
簡單記錄下,就這樣子。