-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Closed
Labels
⭕️ bugSomething isn't workingSomething isn't working
Description
提问前先看看:
https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md
🐛 bug 描述
調用 actionRef.current?.reset() 後,雖然表單欄位正確重置為初始值,但發起的請求參數在 2.8.10 版本會是「{}」空物件,而在 PR #9216 合併修正之後其參數仍是重置前的舊值,導致請求參數與表單顯示不一致。
根本原因:resetAll 函數中調用 formRef.resetFields() 後,沒有同步更新 formSearch 狀態,導致 useFetchData 使用的仍是舊的參數。
📷 复现步骤
- 設置 ProTable 的 columns 帶有
initialValue(如keyword: "initial-value", status: "open") - 修改表單值(如改為
keyword: "modified", status: "closed") - 點擊「查詢」→ 確認請求參數是修改後的值
- 調用
actionRef.current?.reset() - 觀察請求參數
- 2.8.10 版問題:參數是 "{}" 而非 "initial-value" ❌
- PR feat(table): 表格排序与筛选相关调整修正 #9216 版問題:參數仍是 "modified" 而非 "initial-value" ❌
🏞 期望结果
調用 actionRef.reset() 後:
- 表單欄位重置為初始值 ✅(目前正常)
- 請求參數也應該是初始值 ❌(目前有問題)
💻 复现代码
https://codesandbox.io/p/devbox/github-issue-protable-chu-shi-zai-ru-rao-guo-yan-zheng-forked-644pm4
© 版本信息
- ProComponents 版本: ^2.8.10
- umi 版本: N/A
- 浏览器环境: Chrome
- 开发环境: Windows(WSL)
🚑 其他信息
📝 預期改動
文件:src/table/Table.tsx
resetAll 函數(約第 1046-1066 行)需在 formRef.resetFields() 後同步更新 formSearch:
resetAll: () => {
// 清空选中行
onCleanSelected();
// 清空 toolbar 搜索
counter.setKeyWords(undefined);
// 重置页码
action.setPageInfo({
current: 1,
});
// 重置绑定筛选值
setProFilter(defaultProFilter);
// 重置绑定排序值
setProSort(defaultProSort);
// 重置表單
formRef?.current?.resetFields();
const values = formRef?.current?.getFieldsFormatValue?.(); // <-- 獲取值
setFormSearch(values); // <-- 同步更新 formSearch
},✅ 預期測試項
| # | 測試場景 | 操作步驟 | 預期結果 |
|---|---|---|---|
| 1 | 多欄位初始值 | 多個欄位有 initialValue → 調用 reset() | 所有欄位與請求參數都正確回到初始值 |
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
⭕️ bugSomething isn't workingSomething isn't working