所以我有这个:
我想将所有“解析”代码保存在可以从其他类和文件调用的管理器中。在此示例中,我有一个仅检查用户是否已登录,然后基于此返回不同的抽屉式导航的功能。问题是我不断收到错误“未定义不是函数(正在评估...)”。我对javascript很陌生,无法找到答案。这是代码。
提前致谢。
ParseManager.js
isUserLogged() {
Parse.User.currentAsync().then(function (user) {
if (user) {
console.log("ParseManager - User logged in.")
return true;
} else {
console.log("ParseManager - User logged off.")
return false;
}
});
App.js
render() {
if (ParseManager.isUserLogged()) {
return (
<SecondaryRoot />
);
} else {
return (
<MainRoot />
);
}
最佳答案
您只需在组件安装时调用isUserLogged,然后再检查状态即可:
ParseManager.js
isUserLogged(callback) {
Parse.User.currentAsync().then(function (user) {
if (user) {
console.log("ParseManager - User logged in.")
callback(true);
} else {
console.log("ParseManager - User logged off.")
callback(false);
}
});
App.js
componentDidMount(){
ParseManager.isUserLogged(
(logged)=>{
this.setState({logged});});
});
}
render() {
if (this.state.logged) {
return (
<SecondaryRoot />
);
} else {
return (
<MainRoot />
);
}