พิจารณาสิ่งต่อไปนี้:
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>
];
ฉันมีแม่แบบแอปส่วนหัวและชุดเส้นทางที่กำหนดพารามิเตอร์ด้วยตัวจัดการเดียวกัน (ภายในเทมเพลตแอป) ฉันต้องการให้บริการ 404 เส้นทางเมื่อไม่พบบางสิ่ง ตัวอย่างเช่น / CA / SanFrancisco ควรพบและจัดการโดย Area ในขณะที่ / SanFranciscoz ควรเป็น 404
นี่คือวิธีที่ฉันทดสอบเส้นทางอย่างรวดเร็ว
['', '/', '/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');
});
});
ปัญหาคือ / SanFranciscoz มักจะถูกจัดการโดยเพจ Area แต่ฉันต้องการให้เป็น 404 นอกจากนี้หากฉันเพิ่ม NotFoundRoute ในการกำหนดค่าเส้นทางแรกหน้า Area ทั้งหมด 404
<Route handler={App} someProp="defaultProp">
<Route path="/" handler={Page} />
<NotFoundRoute handler={NotFound} />
</Route>,
ผมทำอะไรผิดหรือเปล่า?
นี่คือส่วนสำคัญที่สามารถดาวน์โหลดและทดลองได้