`replaceState`不在Promise的`then`里面工作

时间:2015-11-08 23:53:26

标签: authentication reactjs react-router flux history.js

假设我们有一个API调用对用户进行身份验证,然后根据用户是否从服务器返回,我们要么replaceState要么什么也不做,这可能看起来像这样:

"mylocations"

<Route component={App} onEnter={authUser} />

在replaceState工作和不工作之间唯一的区别因素是从Promise的一个内部调用一个,而在Promise解析之外调用一个。 Promise是否影响replaceState执行?

1 个答案:

答案 0 :(得分:3)

异步onEnter挂钩的语法必然有点不同,因为我们需要一种方法来阻止转换,直到处理程序完成运行。

如果你的onEnter挂钩是异步的,那么它需要采用第三个参数,例如

function onEnter(nextState, replaceState, callback) {
    /* ... */
}

执行此操作时,您必须在输入挂钩完成运行后自己致电callback()。我们有必要使用此API来支持例如没有使用