调度()之后的代码没有被执行

时间:2016-09-07 09:41:22

标签: reactjs redux react-redux

我有一些看起来像这样的代码:

减速机:

const foo = (bar) => {
  console.log("here");
  return {
    type: "FOO",
    bar
  }
}

在容器的render()内部

console.log(1);
console.log(this.props.dispatch);
console.log(foo);
this.props.dispatch(foo(
  {a: 1, b: 2}
));
console.log(2);

我在Chrome中看到的输出是:

1
<dispatch function>
<my foo reducer function>
here

请注意,2丢失了。 我没有得到任何错误,没有重定向,也没有任何错误。代码执行在dispatch()调用后停止。

任何建议我如何调试或者想法可能出现什么问题?

1 个答案:

答案 0 :(得分:1)

记录:)

您无法在dispatch()中致电render()

(因为如果你这样做,你的道具会被更新,所以在当前道具的中间需要一个新的渲染。这将是一个挂断(等待你自己)或无限递归。证据显示挂断!)