Reactjs:立即使用更新的状态数据(来自存储)
Reactjs: using updated state data (from store) immediately
我正在使用 react with flux。
我的组件中有一个函数,该函数调用在单击时执行操作:
onClickEventEdit: function(itemId) {
ScheduleActions.getEventById(itemId) // this ultimately is set into `currentEventById` state
var title = this.state.currentEventById['title'] || ""
console.log(title) // logs nothing
console.log(this.state.currentEventById) //logs empty object {}
// then show modal
$('#eventSelectedModal').modal({
show: true
});
},
我的ScheduleAction
是用于检索事件信息的 ajax 调用。当Ajax操作完成后,它会更新我的商店。我的印象是,它在标题分配和日志发生后更新了我的商店。
调用操作后如何访问此信息,以便可以立即向客户端显示信息?
AJAX 调用(技术上是 XMLHttpRequests)是异步执行的。这意味着,同步代码将继续运行,而 HTTP 调用仍在等待响应。这完全符合您的预期行为。
最简单的解决方案是使用异步调用完成时调用的回调参数扩展getEventById()
方法。您现在可以将调用后应执行的代码移动到回调中,从而有效地延迟其执行;
onClickEventEdit: function(itemId) {
ScheduleActions.getEventById(itemId, function() {
var title = this.state.currentEventById['title'] || ""
console.log(title) // logs nothing
console.log(this.state.currentEventById) //logs empty object {}
// then show modal
$('#eventSelectedModal').modal({
show: true
});
});
},
对于更干净的解决方案,您可以研究承诺。
相关文章:
- 如何有效地将游戏数据存储在URL查询字符串中
- 将数据存储在javascript数组中以供进一步使用
- 将数据存储到元素中
- 如何将变量数据存储在其他变量中并对其进行解析
- 将新类实例中的数据存储在数组中
- 如何在Java Script中比较二维数组和一维数组,并将常见数据存储在另一个数组中
- 组合框是否需要数据存储
- 将动态feild数据存储到jquery-mobile和php-mysql中的数据库中
- 将数据存储在请求与请求中
- 将json数据存储在sqlite(phonegap应用程序)中
- 如何给$('inputs')每个函数,以将数据存储为 asp.net 中的键值对
- 使用 Ajax 将 PHP 嵌入到 JavaScript 中,以便将 MySQL 数据存储在 JavaScript 对象
- 无法将数据存储到 mongoDB
- Ext JS - 将面板绑定到数据存储的最佳方法
- 如何将数据存储值传递给javascript?我需要从gae数据存储中获取数据,并需要传递javascript
- 在数组数组中查找表数据存储
- 客户端数据存储
- 如何使用javascript将数据存储到mysql数据库中
- ServiceWorker数据存储在哪里
- Javascript Security:将敏感数据存储在比cookie更安全的自调用函数中