undefined не является функцией (оценивает this.function () в реакции на нативный - PullRequest
0 голосов
/ 30 октября 2018

Итак, что у меня есть это: Я хочу сохранить весь код 'parse' внутри менеджера, который я могу вызывать из других классов и файлов. В этом примере у меня есть функция, которая будет только проверять, вошел ли пользователь в систему, а затем возвращать различные варианты навигации на основе этого. Проблема в том, что я получаю сообщение об ошибке «undefined - это не функция (оценка ...)». Я вроде новичок в 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 голосов
/ 30 октября 2018

Вы просто вызываете 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 />
    );
  }
...