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