You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已传递ID但未显示正确数据:活跃用户画廊功能异常

问题分析与修复方案

你的活跃用户画廊功能异常的核心原因是GalleriesApp中的useEffect条件逻辑存在覆盖问题,导致请求被重置为获取全部画廊。

具体问题点:

  1. 条件分支不互斥:原代码中if(my_id)和if(id)/else是独立分支,进入/my-galleries时,my_id存在但id为undefined,第一个分支执行后,else分支会立刻执行,将用户ID重置为null并重新请求全部画廊,直接覆盖了之前的活跃用户画廊请求。
  2. 错误的状态设置:在my_id分支中,你错误地将id(此时为undefined)传给setSearchUserId,导致搜索状态中的用户ID不正确。

修复代码:

修改GalleriesApp中的useEffect逻辑,使用互斥的else if结构,并修正状态设置:

useEffect(() => {
  if(my_id){
      // 将setSearchUserId的参数改为my_id,而非id
      dispatch(setSearchUserId(my_id));
      dispatch(getGalleries({ page: 1, user_id: my_id, term: null}));
  } else if(id){
      dispatch(setSearchUserId(id));
      dispatch(getGalleries({ page: 1, user_id: id, term: null}));
  } else {
      dispatch(setSearchUserId(null));
      dispatch(getGalleries({ page: 1, user_id: null, term: null}));
  }
}, [my_id, id, dispatch]);

额外优化建议:

  • 可以移除useEffect(() => { dispatch(getActiveUser(id)) },[id])逻辑,因为/my-galleries路径下id不存在,该dispatch无意义;而/authors/:id路径下,该逻辑是获取作者信息而非活跃用户,存在逻辑混淆。
  • 后续可验证handleSearch函数,确保my_id存在时,搜索逻辑能正确关联当前用户。

内容的提问来源于stack exchange,提问作者mnPrc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 22:47:06