Tôi muốn kết xuất thành phần dựa trên điều kiện bên ngoài, chuyển hướng khác đến nơi khác trong ứng dụng.Giai đoạn vòng đời thích hợp để thực hiện chuyển hướng trong một thành phần React là gì?
Lý tưởng nhất là chuyển hướng này sẽ được quyết định trước thành phần, nhưng trong một số trường hợp, tôi cảm thấy mình cần phải làm điều này trong cấu phần. Ví dụ, trong ReactRouter, router có thể trông như thế này:
<Router>
<Route path='/' component={LoadingPage} />
<Route path='/Home' component={HomePage} />
<Route path='/Login' component={LoginPage} />
</Router>
và logic/sudocode cho LoadingPage sẽ đi một cái gì đó như thế này:
if (stillLoading) {
render
} else if (loggedIn) {
redirectToHome
} else {
redirectToLogin
}
Nó trở nên phức tạp, bởi vì đôi khi ứng dụng được đã được tải trước khi thành phần được yêu cầu.
Giai đoạn vòng đời nào là nơi thích hợp nhất để đặt logic chuyển hướng này?
- Hiển thị/phương thức được gọi từ Render? (có vẻ lạ)
- ComponentDidMount + Tạo trình xử lý sự kiện cho sau này?
- GetInitialState? (nhưng không nên có tác dụng phụ?)
- ComponentWillMount?
- Khác?
kiểm tra 'onEnter' trong tài liệu Bộ định tuyến phản ứng và ví dụ về dòng xác thực trong repo – knowbody
@knowbody - tuyệt vời! Đó chính xác là những gì tôi đang tìm kiếm. Vì vậy, câu trả lời thực sự là null - làm chuyển hướng trước khi các thành phần thậm chí bắt đầu – eedrah