@ nowshad, вы пытаетесь использовать с redux? Тогда я предлагаю использовать провайдера
import React from 'react'
import { render } from 'react-dom'
import { Provider } from 'react-redux'
import { createStore } from 'redux'
import todoApp from './reducers'
import App from './components/App'
const store = createStore(todoApp)
render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root')
)
Если вы используете только несколько компонентов, и вы хотите иметь значения для всех вложенных компонентов в соответствии с вашим утверждением
For nested components can i have one provider and multiple consumers For an Example : 1 is an parent , 1.1 is a child to 1 and 1.1.1 is child to 1.1, Can i have provider to 1 and consumers to 1.1 and 1.1.1
тогда я предлагаю вам просто передать обработчик как опору, и как только вы захотите изменить состояние, вызовите обработчик, и он изменит значения во всех ваших компонентах. (Это должно быть сделано, если вы простонесколько дочерних компонентов, для которых всем требуются одинаковые значения)
***Using context, we can avoid passing props through intermediate elements***
Согласно React Docs
Не используйте контекст только для того, чтобы не пропустить подпорки на несколько уровней вниз.Придерживайтесь случаев, когда одни и те же данные должны быть доступны во многих компонентах на нескольких уровнях.
Проверьте в официальных документах, почему и почему не следует использовать контекст: https://reactjs.org/docs/context.html
Позвольте мнезнать, если у вас все еще есть проблемы или сомнения относительно того, почему и как использовать контекст