Reactjs React-redux跟踪异步API中的状态

Reactjs React-redux跟踪异步API中的状态,reactjs,asynchronous,redux,react-redux,Reactjs,Asynchronous,Redux,React Redux,我有一个react-redux应用程序。基本上,它类似于学生管理应用程序,在该应用程序中,我将所有学生列为一个表,单击任何学生姓名,我将显示有关该学生的信息 下面是我的商店的概况 { students: [ student1: { marks: 100, attendance: 70, prevMarks: 80 }, student2: { marks: 50,

我有一个react-redux应用程序。基本上,它类似于学生管理应用程序,在该应用程序中,我将所有学生列为一个表,单击任何学生姓名,我将显示有关该学生的信息

下面是我的商店的概况

{
   students: [
      student1: {
         marks: 100,
         attendance: 70,
         prevMarks: 80
      },
      student2: {
         marks: 50,
         attendance: 70,
         prevMarks: 60
      },
     
   ],
   currentStudent: 'student1'
}
如您所见,我有一个
student
列表,其中包含用户数据,
currentStudent
包含执行操作的当前学生的值

单击学生姓名时,
currentStudent
值将更新,并显示
students
列表中的
currentStudent
值。当学生被点击时,
prevMarks
值是在后台使用另一个API调用获取的,存储中的
currentStudent
prevMarks
由其响应更新。 我需要这个API是异步的,因为这不应该影响用户检查其他学生的信息

问题是,当用户单击
student1
时,会调用一个API来获取
student1
prevMarks
,在API完成之前,如果用户单击
student2
,API的响应会更新
currentStudent
的值,即
student2

由于API的响应没有学生姓名,因此无法根据API的响应跟踪学生姓名


如何跟踪通过redux进行API调用的学生,以便相应地更新状态?调用API时是否可以获取
currentStudent
值?是否可以为此使用
redux thunk
?非常感谢您的帮助。

您能更改后端JSON的内容吗?您的应用程序使用的API在您的项目外部?如果没有,您可以在JSON或学生id中发送更多学生数据,然后在单击学生时选择该学生,根据发送的数据或id进行查询过滤。@LeandroL Yes。这是一个外部API,不可能更改它的契约。你所说的关于响应时间和用户操作的内容是相对的,因为你公开的示例可能会发生,也可能不会发生。我突然想到,你列出了一个请求列表,并关联了currentStudent,即,创建一个列表,保存所有单击的currentStudent,然后通过传递currentStudent参数发出请求,并保存其响应,然后浏览列表并显示全部结果。您可以做的另一件事是,在单击另一个学生时,在执行api调用时禁用选择另一个学生的选项。@LeandroL在api调用进行时禁用选择另一个学生会中断用户体验,这对最终用户是有害的