fix: 修复重置按钮不生效问题
问题描述: - 用户选择所有筛选条件后,点击"重置"按钮无反应 - 筛选条件未被清空,事件列表未重新加载 根本原因: - 当筛选条件从"有值"重置为"空值"或从"空值"重置为"空值"时 - 如果 filters 对象的字段值没有实质变化 - DynamicNewsCard 的 useEffect 依赖项检测不到变化,不会触发重新加载 解决方案: 1. UnifiedSearchBox.handleReset() 添加 _forceRefresh 时间戳标志 - 每次重置都生成唯一的 Date.now() 时间戳 - 确保 filters 对象每次重置都不同 2. DynamicNewsCard 筛选 useEffect 依赖数组添加 filters._forceRefresh - 监听强制刷新标志的变化 - 即使其他筛选条件未变,也能触发重新加载 3. 增强调试日志 - 添加完整的重置流程日志输出 - 便于排查后续问题 修改文件: - src/views/Community/components/UnifiedSearchBox.js (Line 505-536) - src/views/Community/components/DynamicNewsCard.js (Line 264) 测试场景: ✅ 选择所有筛选条件后点击重置 - 清空并重新加载 ✅ 未选择筛选条件时点击重置 - 强制刷新第1页 ✅ 重置后 Redux 缓存被清空 (clearCache: true) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -261,6 +261,7 @@ const [currentMode, setCurrentMode] = useState('vertical');
|
||||
filters.end_date, // 时间筛选参数:结束时间
|
||||
filters.recent_days, // 时间筛选参数:近N天
|
||||
filters.industry_code,
|
||||
filters._forceRefresh, // 强制刷新标志(用于重置按钮)
|
||||
mode, // 添加 mode 到依赖
|
||||
pageSize, // 添加 pageSize 到依赖
|
||||
dispatch
|
||||
|
||||
Reference in New Issue
Block a user