이 동일한 시나리오가 모든 곳에 퍼져 있지 않은 경우, 특히 상태 관리 라이브러리가 도입하는 모든 오버 헤드를 도입하지 않으려는 경우 React의 컨텍스트를 사용할 수 있습니다. 또한 배우기가 더 쉽습니다. 그러나 조심해서 사용하면 잘못된 코드를 작성할 수 있습니다. 기본적으로 컨테이너 구성 요소를 정의하면 (그 상태를 유지하고 유지할 것입니다) 모든 구성 요소가 해당 데이터 조각을 자식으로 쓰거나 읽는 데 관심이 있습니다 (직접 자식은 아님)
https://reactjs.org/docs/context.html
대신 일반 반응을 올바르게 사용할 수도 있습니다.
<Component5 onSomethingHappenedIn5={this.props.doSomethingAbout5} />
컴포넌트 1까지 doSomethingAbout5를 전달하십시오.
<Component1>
<Component2 onSomethingHappenedIn5={somethingAbout5 => this.setState({somethingAbout5})}/>
<Component5 propThatDependsOn5={this.state.somethingAbout5}/>
<Component1/>
이것이 일반적인 문제라면 응용 프로그램의 전체 상태를 다른 곳으로 옮기는 것을 생각해야합니다. 몇 가지 옵션이 있으며 가장 일반적인 옵션은 다음과 같습니다.
https://redux.js.org/
https://facebook.github.io/flux/
기본적으로 구성 요소에서 응용 프로그램 상태를 관리하는 대신 상태가 업데이트 될 때 명령을 보냅니다. 구성 요소는이 컨테이너에서 상태를 가져와 모든 데이터가 중앙 집중화됩니다. 이것은 더 이상 로컬 상태를 사용할 수 없다는 것을 의미하지는 않지만 더 고급 주제입니다.