使用反应组件之外的领域

问题描述 投票:0回答:1

我在我的 React Native 应用程序中使用

@realm/react
。 不幸的是,文档不是那么好。

它们提供了 ContextProvider 和钩子,您可以使用它们来访问领域,但不可能从组件外部访问领域(例如,我从组件调用的一些外部逻辑)。 我可以继续创建自己的领域并编写自己的背景,但这似乎是逆流而行。

有这样做的领域方法吗?创建一个领域,将领域上下文关联到该领域并在反应世界之外使用该领域?

(我知道,我可以将领域从组件传递到函数,但这意味着我必须将其拖过函数调用的多个实例,这感觉不对)

reactjs react-native realm
1个回答
0
投票

是的,你可以做到,只需创建SingletonClass来保存Realm实例,在每个你需要使用的函数中

Realm
,你必须在使用前检查它是否== null。

这里是 Singleton 类使用它的简单方法:

export default class RealmManager {

    static myInstance = null;

    _realm = null;


    /**
     * @returns {RealmManager}
     */
    static getInstance() {
        if (RealmManager.myInstance == null) {
            RealmManager.myInstance = new RealmManager();
        }

        return this.myInstance;
    }

    getRealm() {
        return this._realm;
    }

    setRealm(realm){
        this._realm = realm;
    }
}

然后在 RealmContext 中的第一类中,您在

useEffect
中获取领域实例,然后设置为
RealmManager
,确保在使用 app 时不会重新渲染

© www.soinside.com 2019 - 2024. All rights reserved.