我在我的react原生应用程序中有一些奇怪的行为,如果我在大约10秒内没有触发回调,回调触发器就永远不会触发。
我正在以编程方式触发根组件中的auth0 react-native-lock登录模式,并寻找它的回调。如果我在大约10秒内提交auth0锁,回调就会触发,它就会按预期工作。但是,如果我没有在10秒内提交登录,锁定屏幕将照常完成,但登录中的回调永远不会被触发。
如果不是从根目录调用login,而是从App组件中的按钮触发它,那么它工作得很好,并且我可以花费10秒以上的时间来触发回调。
从根容器调用login操作,为什么异步回调消失或不被触发?
// root.js
import React, { Component } from 'react';
import { createStore, combineReducers, applyMiddleware, compose } from 'redux';
import thunk from 'redux-thunk';
import { ApolloProvider } from 'react-apollo';
import App from './App';
import { client } from './client';
import { login } from './actions';
import reducers from './reducers';
reducers.apollo = client.reducer();
const store = createStore(
combineReducers(reducers),
{},
compose(
applyMiddleware(client.middleware()),
applyMiddleware(thunk),
),
);
export default class Root extends Component {
componentDidMount() {
store.dispatch(login());
}
render() {
return (
<ApolloProvider client={client} store={store}>
<App />
</ApolloProvider>
);
}
}我的行动失去了回调
// actions.js
export function login() {
return (dispatch) => {
lock.show(null, (err, profile, token) => {
// sometimes this callback never fires if
// the login window is open for more than 10 sec.
// then dispatch authenticated actions
});
};
}发布于 2016-11-24 23:28:05
我遇到了同样的问题,只需关闭调试器,然后重试。一切都很好。
https://stackoverflow.com/questions/40789923
复制相似问题