Доступ к статической переменной из другого класса в приложении React-Native?

в моем приложении react-native в настоящее время у меня есть класс пользователя, в котором я определяю текущего пользователя, как показано ниже:

class User {
    static currentUser = null;

    //other relevant code here

    static getCurrentUser() {
        return currentUser;
    }
}

export default User;

в другом классе я пытаюсь получить доступ к заданному значению этого currentUser. Я не могу понять, как правильно вызвать эту функцию, я получаю ошибку User.getCurrentUser is not a function. Должен ли я вызывать эту функцию по-другому?

var User = require('./User');

getInitialState: function() {

    var user = User.getCurrentUser();

    return {
        user: user
    };


},

2 ответов


вы смешиваете import / export стили. Вы должны либо изменить свой импорт на

var User = require('./User').default

или

import User from './User'

или измените свой экспорт:

module.exports = User

Я думаю, вы также забыли этой ключевое слово для возврата статического поля "currentUser":

class User {
  constructor() {}

  static currentUser = {
    uname: 'xxx',
    firstname: 'first',
    lastname: 'last'
  };

  static getCurrentUser() {
    return this.currentUser;
  }
}

console.log(User.getCurrentUser());