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

React切换组件时数据数组渲染为空,需手动刷新页面才显示的问题求助

React切换组件时数据数组渲染为空,需手动刷新页面才显示的问题求助

各位好,我最近在React项目里碰到个头疼的问题,想请大家帮忙看看:

我有个Members.tsx页面,通过active变量来控制渲染TeamsList.tsx还是MembersList.tsx,切换的代码是这样的:

{active == "team" ? <TeamsList /> : <MembersList />}

这两个子组件都会调用后端接口获取数据,我代码里"Member"和"Player"是同一个概念,数据请求的函数大致如下(部分映射逻辑没写完):

export async function GetAllPlayersAsync() {
  const myHeaders = new Headers();
  myHeaders.append("Content-Type", "application/json");
  myHeaders.append("Authorization", getCookie('sessionId'));

  const requestOptions = {
    method: "GET",
    headers: myHeaders,
    redirect: "follow" as RequestRedirect
  };

  let players: IPlayer[] = [];
  
  fetch("http://localhost:3000/v1/players", requestOptions)
    .then((response) => response.json())
    .then((result) => {
      console.log(result) // 调试用,能看到后端返回了正确数据
      result.forEach((player: any) => {
        let playerData: IPlayer = {
          // 这里是把返回的player字段映射到IPlayer接口的逻辑
        };
        players.push(playerData);
      });
    })
    .catch((error) => console.error('获取玩家数据出错:', error));
  
  return players;
}

现在的问题是:当我切换active值来切换组件时,刚切过去的组件里数据数组是空的,完全不渲染内容,但手动刷新页面之后,数据就正常显示了。我看控制台的打印,后端确实返回了正确的数据,但组件就是不更新。

有没有大佬能帮我分析下问题根源,或者给个解决思路呀?

备注:内容来源于stack exchange,提问作者Zalán Csőke

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 08:13:02