javascript - 如何在反应应用程序中共享一个类实例?
问题描述
如何在反应应用程序中共享一个类实例?
我需要使用一个外部库,该库需要我对其进行实例化并在应用程序中使用该实例来访问各种方法/属性,
const instance = new LibraryModule(someInitData);
我在我的项目中使用反应功能组件。我不想每次需要使用它时都重新创建实例(可以认为是单例)。
如何与我的所有组件共享同一个实例?
解决方案
导入已经是全局的,你只需要导入模块:
class LibraryModule {
x = 5;
}
const instance = new LibraryModule();
export default instance;
import instance from "./MyLibrary";
import Component from "./Component";
console.log(instance.x);
const App = () => {
useEffect(() => {
console.log(`from App, called last`, instance.x);
}, []);
return <Component />;
};
import instance from "./MyLibrary";
const Component = () => {
useEffect(() => {
instance.x = 10;
console.log(`from component`, instance.x);
}, []);
return <>Component</>;
};
推荐阅读
- spring - 使用 JPA 更新外键
- android - 如何在导航抽屉中添加雪佛龙
- python - 使用 For 循环和 seaborn 创建许多分布图
- elasticsearch - 需要将日志从 EKS 发送到弹性
- python - 如何在控制台上使用 tensorflow 将实时检测打印为字符串,例如“检测到火灾”
- python - 使用 Keras NLP 进行预测
- python - 在 csv 上写入但得到没有行和列的空文件
- r - 在R中按月和年拆分数据
- python - OSError: [WinError 193] %1 在 Spyder 上运行 numpy 库时不是有效的 Win32 应用程序
- mysql - 一起使用 Substring 和 like