цепочка нескольких контекстных провайдеров, работающих в одной и той же области в react native

#react-native #realm #use-effect #react-context

Вопрос:

Я пытаюсь связать несколько контекстных провайдеров, разделенных по разным целям, для работы в одной и той же области в react native.

 lt;FirstRealmProvidergt;  lt;SecondRealmProvidergt;  lt;FunctionalComonentUsingHooksFromFristAndSecondgt;  lt;/SecondRealmProvidergt;  lt;/FirstRealmProvidergt;  

Я инициализирую (открываю) область в первом компоненте (он также отвечает за закрытие и т. Д.) И сохраняю ссылку на нее realmRef = useReflt;Realmgt;(null); с помощью крючка useEffect. Использование экспортированных контекстных функций и коллекций из первого компонента во втором и третьем компонентах будет работать нормально, если я не реализую другой эффект использования в SecondRealmProvider (с прямым доступом к области или без доступа к ее экспортированной ссылке). Если я это сделаю, область пожалуется realmRef.current на то, что она равна нулю (что задано в эффекте использования FirstRealmProvider и не должно быть равно нулю, если эффект использования не вызывается после того, как внутренний эффект использования SecondRealmProvider был вызван первым. В этом случае невозможно будет связать и разделить логику по проблемам, и первый поставщик станет многоцелевым компонентом, перегруженным.

Пожалуйста, помогите мне точно определить, чего мне здесь не хватает.

Спасибо.

Ответ №1:

Поскольку react инициализирует (вызывает useEffect) сначала на внутренних компонентах, они не могут использовать функциональность внешних, если это также зависит от инициализации. Чтобы это все равно работало, я добавил»Конкретный»провайдер, инициализированный так:

 const [nlpIsInitialized, setInitialized] = useStatelt;booleangt;(false);  

и каждый поставщик игнорирует эффект использования до тех пор, пока внешний поставщик не сообщит, что он также инициализирован. Эффект использования также зависит от инициализированного значения внешнего поставщика, и теперь все работает так, как должно.