2016-10-26 20 views
5

Tôi đang hoàn thành một hướng dẫn phản ứng/redux nâng cao và đi qua một phần trong khóa học nơi người hướng dẫn sử dụng browserHistory.push để liên kết với một tuyến đường, trái ngược với phương pháp trước đây được sử dụng để tạo biến lớp tĩnh được gọi là contextTypes và đặt nó bằng một cái gì đó như React.PropTypes.blah blah blah.Bộ định tuyến phản ứng - BrowserHistory.Push VS. ContextTypes

Sự khác biệt giữa điều đó và sử dụng browserHistory.push là gì? browserHistory.push có vẻ dễ dàng hơn nhiều khi định tuyến lại chương trình thay vì thiết lập các kiểu ngữ cảnh.

Cảm ơn!

Trả lời

0

Không chắc chắn bạn đã sử dụng hướng dẫn nào, vì vậy đây là một chút ảnh chụp trong bóng tối.

Tôi cho rằng bạn đang sử dụng một cái gì đó như https://github.com/reactjs/react-router-redux trong hướng dẫn đầu tiên của bạn đồng bộ hóa trạng thái bộ định tuyến với trạng thái chuyển đổi màu đỏ và có đối tượng bộ định tuyến trong ngữ cảnh. Sau đó, bạn có thể làm điều gì đó như:

this.context.router.push(location) để gửi thay đổi vị trí Điều này sẽ lưu thay đổi vị trí về trạng thái chuyển đổi màu đỏ và sau đó tải tuyến đường mới đó.

Tại lõi phản ứng-router-redux (và nhiều thư viện định tuyến khác) sử dụng https://github.com/ReactTraining/history để quản lý lịch sử tuyến đường được điều hướng đến. Điều đó cho phép bạn sử dụng API lịch sử HTML5 trong các trình duyệt hiện đại, để quay trở lại hashHistory (index.html/# page-one) hoặc lịch sử bộ nhớ tức là để hiển thị phía máy chủ.

Gói lịch sử đi kèm với API riêng của nó. Và trong hướng dẫn của bạn rằng browserHistory.push() có thể gọi API của gói lịch sử trực tiếp (see here).

Điều này sẽ dẫn đến ứng dụng tải tuyến đường mới, nhưng có thể sẽ bỏ qua đồng bộ hóa với kho lưu trữ Redux của bạn.

Hướng dẫn thứ hai của bạn có thể không sử dụng phản ứng-router-redux hoặc có thiết lập khác.

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