React Native中的Java单例相当于什么?

时间:2019-04-24 10:14:10

标签: reactjs react-native react-native-android react-native-ios

实际上,我是一名Android Native Developer。我是React-Native的新手。在Java中,我将用户数据和其他数据保留在Singleton类中,并通过其他活动进行访问。然后,我如何在React native中实现此过程,以便从其他组件或React native中的任何其他单例访问数据。

我只是尝试这样做,但是我收到未定义getInstance()之类的错误。

class AppDelegate {
log = "This is AppDelegate";  

  static myInstance = null;
  static getInstance() {
    if (AppDelegate.myInstance == null) {
      AppDelegate.myInstance = new AppDelegate();
    }

    return this.myInstance;
  }

}

谢谢。

3 个答案:

答案 0 :(得分:2)

React是UI库,这不是它的责任。这个问题不仅会影响React,还会影响所有JavaScript应用程序。

通常在正常情况下,仅对JavaScript模块特别是ES模块进行一次评估,这使得导出单例:

  // exported for extensibility
  export class AppDelegate {...}

  // a singleton
  export default new AppDelegate;

Singleton类可能是JavaScript中的反模式。如果需要一个对象,可以将其写为对象文字。

答案 1 :(得分:2)

缓存了导入,因此,如果导出类,则将缓存该类,如果导出实例,则将缓存实例

答案 2 :(得分:-1)

如果您需要单身人士,请不要使用任何类。 而是将方法导出为函数。

// File app-delegate.js
let privateIstanceValue;
export const method1 = () => //do something;
export const method2 = () => //do something again;

使用import * as

导入
import * as appDelegate from './app-delegate.js';