diff --git a/src/views/Community/index.js b/src/views/Community/index.js index 6176e9a8..8d727e57 100644 --- a/src/views/Community/index.js +++ b/src/views/Community/index.js @@ -120,8 +120,8 @@ const Community = () => { const [selectedEventForStock, setSelectedEventForStock] = useState(null); const [lastUpdateTime, setLastUpdateTime] = useState(new Date()); - // 从URL获取筛选参数 - const getFiltersFromUrl = useCallback(() => { + // 筛选参数状态 - 初始化时从URL读取,之后只用本地状态 + const [filters, setFilters] = useState(() => { return { sort: searchParams.get('sort') || 'new', importance: searchParams.get('importance') || 'all', @@ -132,27 +132,18 @@ const Community = () => { industry_code: searchParams.get('industry_code') || '', page: parseInt(searchParams.get('page') || '1', 10) }; - }, [searchParams]); + }); - // 更新URL参数 - const updateUrlParams = useCallback((params) => { - const newParams = new URLSearchParams(searchParams); - Object.entries(params).forEach(([key, value]) => { - if (value) { - newParams.set(key, value); - } else { - newParams.delete(key); - } - }); - setSearchParams(newParams); - }, [searchParams, setSearchParams]); + // 更新筛选参数 - 不再修改URL + const updateFilters = useCallback((newFilters) => { + setFilters(prev => ({ ...prev, ...newFilters })); + }, []); // 加载事件列表 const loadEvents = useCallback(async (page = 1) => { logger.debug('Community', 'loadEvents 被调用', { page }); setLoading(true); try { - const filters = getFiltersFromUrl(); const response = await eventService.getEvents({ ...filters, page, @@ -169,15 +160,14 @@ const Community = () => { setLastUpdateTime(new Date()); } } catch (error) { - // ❌ 移除 toast,仅 console 输出 logger.error('Community', 'loadEvents', error, { page, - filters: getFiltersFromUrl() + filters }); } finally { setLoading(false); } - }, [getFiltersFromUrl, pagination.pageSize]); // ✅ 移除 toast 依赖 + }, [filters, pagination.pageSize]); // 处理筛选变化 const handleFilterChange = useCallback((filterType, value) => { @@ -228,7 +218,6 @@ const Community = () => { }; // 获取筛选标签 - const filters = getFiltersFromUrl(); const filterTags = Object.entries(filters) .filter(([key, value]) => { if (key === 'industry_code') return !!value;