Javascript React一个接一个地执行操作调用不起作用

Javascript React一个接一个地执行操作调用不起作用,javascript,reactjs,redux,promise,Javascript,Reactjs,Redux,Promise,调用actionupdateSchools函数时,更新的值不会在\u getSchools响应中返回。重新加载页面时,将返回更新的值,甚至在updateSchools函数中调试时,数据库中的值也会更新。谁能告诉我哪里错了?Promise和react redux在应用程序中使用。您在操作中发送的有效负载就是Promise。 请检查 动作是一个普通的JavaScript对象 这意味着你不应该在行动中发送任何承诺或其他功能。 承诺应该在redux操作和Reducer之外的其他地方开始和结束 获取数据的

调用action
updateSchools
函数时,更新的值不会在
\u getSchools
响应中返回。重新加载页面时,将返回更新的值,甚至在
updateSchools
函数中调试时,数据库中的值也会更新。谁能告诉我哪里错了?Promise和react redux在应用程序中使用。

您在操作中发送的有效负载就是Promise。 请检查

动作是一个普通的JavaScript对象

这意味着你不应该在行动中发送任何承诺或其他功能。 承诺应该在redux操作和Reducer之外的其他地方开始和结束


获取数据的常用方法是通过Redux中间件。举一个中间件-。你完全可以避免使用中间件,自己写,这取决于你自己。但有一件事你应该在你的应用程序中改变,那就是停止在行动的有效载荷中发送承诺。

请共享减速机。你不应该在行动中发送承诺。行动必须始终返回POJO,所有承诺都应在redux之外开始并解决
export function updateSchools(subjectId, schoolId, data) {
const { year } = data
  return {
    type: actionTypes.UPDATE_SCHOOL,
    meta: actionTypes.UPDATE_SCHOOL,
    payload: http.put(
      `api/school/${schoolId}`,
      data
    ).then(data => {
      return _getSchools(subjectId, year)
    })
  }
}


const _getSchools = (subjectId, year) => {
  return http.get(`api/school/${subjectId}/subject/${year}`).then(data => {
    //some logic
    
    return data
  })
}