javascript - 当我从多个地方导入它时如何创建单例类?

标签 javascript reactjs react-native

如果我想在多个地方导入 Singleton 类,如何制作它?

我最终得到了这样的结果,但每次导入时我都会导出一个 new() 实例(至少我是这么认为的)。

class RenderToRootAPI {
    renderToRootComponent = null
    setRenderComponent = ref => this.renderToRootComponent = ref
    setInstance = instance =>  {
        console.warn('setting instance')
        this.renderToRootComponent.setInstance(instance)
    }
    deleteInstance = () => this.renderToRootComponent.deleteInstance
}

export default new RenderToRootAPI()

最佳答案

您所编写的导出一个单例。导入多少次并不重要。

如果你像这样写作为例子,可能看起来更清楚一点:

class RenderToRootAPI {
    renderToRootComponent = null
    setRenderComponent = ref => this.renderToRootComponent = ref
    setInstance = instance =>  {
        console.warn('setting instance')
        this.renderToRootComponent.setInstance(instance)
    }
    deleteInstance = () => this.renderToRootComponent.deleteInstance
}

const renderToRootAPI = new RenderToRootAPI();

export default renderToRootAPI;

该类甚至没有导出,单个导出的实例将在导入它的所有模块中使用。

关于javascript - 当我从多个地方导入它时如何创建单例类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51539968/

相关文章:

javascript - 值更改时触发服务

javascript - 用于黑莓的谷歌地图 API

react-native - 使用 React Native Paper 进行模态对话框?

android - 无法在android react native模块中调整线性布局子项的大小

reactjs - 集成 React ace 编辑器以响应 native 应用程序

javascript - 不使用 Flexbox 的响应式 div

javascript - Ember.js - 基于身份验证的动态路由逻辑

reactjs - 将 Draft-js 与 redux-form 结合起来

reactjs - Redux 的 combineReducers 和 TypeScript

javascript - "custom"单页应用程序中的样式组件问题