簡體   English   中英

undefined不是一個函數(在react native中評估this.function()

[英]undefined is not a function (evaluating this.function() in react native

所以,我的意思是:我想將所有“解析”代碼保存在可以從其他類和文件調用的管理器中。 在此示例中,我有一個僅檢查用戶是否已登錄,然后基於此返回不同的抽屜式導航的功能。 問題是我不斷收到錯誤“未定義不是函數(正在評估...)”。 我對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 />
    );
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM