Nếu kịch bản tương tự này không lan truyền khắp mọi nơi, bạn có thể sử dụng bối cảnh của React, đặc biệt nếu bạn không muốn giới thiệu tất cả các chi phí mà thư viện quản lý nhà nước giới thiệu. Thêm vào đó, nó dễ học hơn. Nhưng hãy cẩn thận, bạn có thể lạm dụng nó và bắt đầu viết mã xấu. Về cơ bản, bạn xác định một thành phần Container (sẽ giữ và giữ phần trạng thái đó cho bạn) làm cho tất cả các thành phần quan tâm đến việc viết / đọc đoạn dữ liệu đó là con của nó (không nhất thiết phải là con trực tiếp)
https://reactjs.org/docs/context.html
Thay vào đó, bạn cũng có thể sử dụng React đơn giản.
<Component5 onSomethingHappenedIn5={this.props.doSomethingAbout5} />
vượt qua doS Something About5 cho đến Hợp phần 1
<Component1>
<Component2 onSomethingHappenedIn5={somethingAbout5 => this.setState({somethingAbout5})}/>
<Component5 propThatDependsOn5={this.state.somethingAbout5}/>
<Component1/>
Nếu đây là một vấn đề phổ biến, bạn nên bắt đầu suy nghĩ chuyển toàn bộ trạng thái của ứng dụng sang một nơi khác. Bạn có một vài lựa chọn, phổ biến nhất là:
https://redux.js.org/
https://facebook.github.io/flux/
Về cơ bản, thay vì quản lý trạng thái ứng dụng trong thành phần của bạn, bạn gửi lệnh khi có điều gì đó xảy ra để cập nhật trạng thái. Các thành phần cũng kéo trạng thái từ thùng chứa này để tất cả dữ liệu được tập trung. Điều này không có nghĩa là không thể sử dụng trạng thái địa phương nữa, nhưng đó là một chủ đề nâng cao hơn.