我有一个Javascript类,它充当与API对话的数据控制器。
我需要从多个react组件中调用该类的方法。
当前,我正在Redux存储中存储该类的实例,但是我知道这是一种不良的设计方法。
如何在多个组件之间共享一个实例?
答案 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;