未定义不是函数(在react native

时间:2018-10-30 11:55:10

标签: javascript react-native parse-platform

所以我有这个: 我想将所有“解析”代码保存在可以从其他类和文件调用的管理器中。在此示例中,我有一个仅检查用户是否已登录,然后基于此返回不同的抽屉式导航的功能。问题是我不断收到错误“未定义不是函数(正在评估...)”。我对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 />
  );
}

1 个答案:

答案 0 :(得分:1)

您只需在组件安装上调用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 />
    );
  }