2017-02-27 18 views
9

Tôi đang sử dụng react-router-4.0.0-beta.4 với redux, tôi đang cố gắng tìm ra cách tốt nhất để gửi các hành động thay đổi tuyến đường. Tôi thấy rằng một vài phiên bản trước đây đã có một móc API/sự kiện cho here này. Nhưng tôi thấy nó đã biến mất rồi. Đang cố gắng thực hiện tương đương hiện đại với những gì redux-router đã làm.Cách gửi các hành động về thay đổi vị trí với bộ định tuyến phản ứng v4

Trả lời

2

Có vẻ như cách tốt nhất để gửi một hành động là làm như vậy tại các phương thức componentWillMount(), componentDidMount() hoặc componentWillUnmount() của thành phần.

IGNORE Lỗi nhỏ DƯỚI

onEnter prop. Giống như ở đây comet-frontend

OnEnter (nextState, thay thế, gọi lại?)

Được gọi khi một con đường sắp được nhập vào. Nó cung cấp trạng thái bộ định tuyến tiếp theo và chức năng chuyển hướng đến một đường dẫn khác. đây sẽ là trường hợp tuyến đường kích hoạt móc. https://github.com/ReactTraining/react-router/blob/master/docs/API.md#onenternextstate-replace-callback

NHƯNG, vẫn còn đang bậtChạy, làm chính xác những gì bạn mô tả. Có thể cho chúng tôi biết chính xác vấn đề của bạn là gì. Bởi vì có vẻ như bạn đang làm gì đó sai.

+0

Ok, tôi nghĩ rằng có thể là nó, tôi thấy một vài cuộc thảo luận về github ám chỉ này. Tôi đã cố gắng sử dụng mệnh đề 'onChange' prop và nó dường như không hoạt động. Sẽ tốt hơn nếu 'BrowserRouter' có móc" toàn cục "cho các thay đổi vị trí. – Lutando

+0

Vâng. Tôi thực sự không hiểu tại sao họ quyết định loại bỏ những đạo cụ đó. Nó giữ mã sạch sẽ. –

0

Vì vậy, bạn phải bọc thành phần ứng dụng chính của mình trong một withRouter và phản ứng dựa trên các đạo cụ thay đổi trong đạo cụ mà withRouter chuyển xuống, cụ thể là ví dụ props.location.pathname.

Bạn có thể thấy một cuộc thảo luận về làm thế nào nó có thể làm việc ở đây https://github.com/ReactTraining/react-router/issues/4603

Các vấn đề liên quan