Как получить доступ к контексту неизвестного родителя

#javascript #reactjs #react-native #context-api #use-context

#javascript #reactjs #react-native #реагировать-контекст #использовать-context

Вопрос:

Предположим, у меня есть два отдельных компонента X и Y, где X — это зависимость в Y (не прямой потомок в проекте). Возможно ли получить доступ к контексту Y в X ?

пример:

 <Y.Provider value={key: 'val'}>
   <X />
</Y.Provider>
  

X — это отдельный проект, который хочет получить доступ к контексту Y, как это можно сделать?
Могу ли я импортировать контекст Y в X и использовать его? Y является полностью отдельным (неизвестным, пока X не используется в качестве зависимости в Y) компонентом?

Ответ №1:

Если вы хотите получить доступ к какой-либо родительской переменной, родитель должен передать ее как prop.

Y может передавать необходимые реквизиты своим дочерним элементам

 const Y = (props) => {
   const myVariable = 1

   return React.cloneElement(props.children, { context: myVariable })
}
  

Тогда X мог бы получить к нему доступ через props.context.myVariable