在多个React组件之间共享JavaScript类

时间:2020-09-24 16:09:57

标签: javascript reactjs redux

我有一个Javascript类,它充当与API对话的数据控制器。

我需要从多个react组件中调用该类的方法。

当前,我正在Redux存储中存储该类的实例,但是我知道这是一种不良的设计方法。

如何在多个组件之间共享一个实例?

1 个答案:

答案 0 :(得分:2)

有几种方法可以解决此问题。就个人而言,我使用 provider 文件导出一个实例,该实例可以在需要时导入。

说我需要在我的整个应用程序中使用同一类的实例Foo。我将Foo导入到提供程序文件中,该文件将创建并导出其实例。然后,从需要它的那个提供程序中导入该实例:

文件Foo.js

class Foo {};

export default Foo;

文件FooProvider.js

import Foo from './Foo';

export let foo = new Foo();

组件文件:

import foo from './FooProvider';
import React, { Component } from 'react';

Class MyComponent extends Component {
    someMethod () {
        //use foo
    }
}

export default MyComponent;