Hãy xem xét những điều sau đây:
var AppRoutes = [
<Route handler={App} someProp="defaultProp">
<Route path="/" handler={Page} />
</Route>,
<Route handler={App} someProp="defaultProp">
<Route path="/" handler={Header} >
<Route path="/withheader" handler={Page} />
</Route>
</Route>,
<Route handler={App} someProp="defaultProp">
<Route path=":area" handler={Area} />
<Route path=":area/:city" handler={Area} />
<Route path=":area/:city/:locale" handler={Area} />
<Route path=":area/:city/:locale/:type" handler={Area} />
</Route>
];
Tôi có Mẫu ứng dụng, HeaderTemplate và Tập hợp các tuyến đường được tham số hóa với cùng một trình xử lý (trong mẫu Ứng dụng). Tôi muốn có thể phục vụ các tuyến 404 khi không tìm thấy thứ gì đó. Ví dụ: / CA / SanFrancisco nên được tìm thấy và xử lý bởi Area, trong khi / SanFranciscoz nên 404.
Đây là cách tôi nhanh chóng kiểm tra các tuyến đường.
['', '/', '/withheader', '/SanFranciscoz', '/ca', '/CA', '/CA/SanFrancisco', '/CA/SanFrancisco/LowerHaight', '/CA/SanFrancisco/LowerHaight/condo'].forEach(function(path){
Router.run(AppRoutes, path, function(Handler, state){
var output = React.renderToString(<Handler/>);
console.log(output, '\n');
});
});
Vấn đề là / SanFranciscoz luôn được xử lý bởi trang Area, nhưng tôi muốn nó thành 404. Ngoài ra, nếu tôi thêm NotFoundRoute vào cấu hình tuyến đầu tiên, tất cả các trang Area 404.
<Route handler={App} someProp="defaultProp">
<Route path="/" handler={Page} />
<NotFoundRoute handler={NotFound} />
</Route>,
Tôi đang làm gì sai?
Đây là một ý chính có thể được tải xuống và thử nghiệm.