首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调度动作一次复印机自动组件一次不

调度动作一次复印机自动组件一次不
EN

Stack Overflow用户
提问于 2017-08-11 07:25:03
回答 1查看 72关注 0票数 0

我用的是react,redux,redux和redux.

我的代码看起来是:

代码语言:javascript
复制
  function thunkFunction(){
  return(dispatch) => { 
    dispatch(toggleSmth(false));
    dispatch(toggle2Smth(false));

    SomeService.getSmth()
    .then(response => {

      dispatch(oneMoreAction);
      dispatch(one2MoreAction);

    }
  }
}

现在,我在某个组件中在componenDidMount()之后分派整个thunk操作。

它的工作原理是:

  1. 调度(toggleSmth(假));
  2. 调度(toggle2Smth(假));
  3. 承诺回调队列(不执行.then元素)
  4. }向右卷曲括号
  5. 组件复制器
  6. 去.then(
  7. 调度(OneMoreAction)
  8. 自动组件复制器(为什么!?)
  9. 回到第二次调度->调度(One2MoreAction)
  10. 另一个自动组件编辑器(为什么!?)

问题是:

为什么一旦调度等待整个堆栈清除。在承诺中,在调度组件被自动重命名之后,它返回到下一个承诺函数元素?

此外,当我将分派(toggleSmth(False))放入承诺中时,如下所示:

代码语言:javascript
复制
function thunkFunction(){=
  return(dispatch) => { 
    SomeService.getSmth()
    .then(response => {

      dispatch(toggleSmth(false));
      dispatch(toggle2Smth(false));
      dispatch(oneMoreAction);
      dispatch(one2MoreAction);

    }
  }
}

dispatch(toggleSmth(false))dispatch(toggle2Smth(false))自动复制器组件。(而不是等待清除回调堆栈'}')。在reender进入下一个->到第一个dispatch(oneMoreAction);之后

为什么一旦调度导致自动复写器,而又必须等待函数内部元素的执行?

EN

回答 1

Stack Overflow用户

发布于 2017-08-11 12:44:33

我想你对两件事有一点误解:

  • 反应元件生命周期
  • 这是雷击的工作方式。

在最基本的级别上,您正在调用一个thunk操作( proimise),它总共调用4次调度。每次您调用一个修改状态的操作时,该状态所接触的组件(通过mapStateToProps)都会重新呈现。

当您将所有分派函数置于一个异步调用(即嵌套一次)下(本例中为SomeService.getSmth().then(() => {...});))下,会导致这些函数相对于其他异步调用同步触发.但是,该组件仍然重新呈现,因为它被正在被修改的状态所触摸。

在第一种情况下,两个分派的调用是同步的,然后服务调用与其他两个调度一起进行,直到服务调用结束

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45629299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档