【发布时间】:2018-05-30 18:58:00
【问题描述】:
我正在尝试使用 react native / redux / firebase 进行登录过程,但遇到了一些问题...
我尝试实现 onAuthStateChanged 来调度一个动作,但它没有按我的意愿工作。
它适用于两种情况:
1 - 我在我的组件中直接实现我的 onAuthStateChanged,如下所示:
componentDidMount() {
firebaseAuth.onAuthStateChanged()
.then((user) => {
if (user) {
Actions.home();
} else {
Actions.login();
}
});
}
2 - 我将它作为一个带有 redux-thunk 的动作实现但没有调度(但我无法调度一个动作并重定向到我的正确路线)
export const isAuthenticated = () => {
firebaseAuth.onAuthStateChanged()
.then((user) => {
if (user) {
console.log("launch.action#isAuthenticated - user already connected");
} else {
console.log("launch.action#isAuthenticated - user not connected");
}
});
};
而我想做的是这个(但不起作用):
export const isAuthenticated = () => {
return (dispatch) => {
firebaseAuth.onAuthStateChanged()
.then((user) => {
console.log('user', user);
if (user) {
console.log("launch.action#isAuthenticated - user already connected");
dispatch(isUserConnected(true));
} else {
console.log("launch.action#isAuthenticated - user not connected");
dispatch(isUserNotConnected(true));
}
});
};
};
有人可以解释一下为什么它不适用于调度吗?
谢谢!
【问题讨论】:
-
可以分享
isUserNotConnected和isUserConnected的功能吗?
标签: firebase react-native react-redux redux-thunk