निम्नलिखित को धयान मे रखते हुए:
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 को हमेशा एरिया पेज द्वारा हैंडल किया जा रहा है, लेकिन मैं इसे 404 पर चाहता हूं। इसके अलावा, यदि मैं पहले रूट कॉन्फ़िगरेशन में एक NotFoundRoute जोड़ देता हूं, तो सभी एरिया पेज 404।
<Route handler={App} someProp="defaultProp">
<Route path="/" handler={Page} />
<NotFoundRoute handler={NotFound} />
</Route>,
मैं क्या गलत कर रहा हूं?
यहाँ एक जिस्ट है जिसे डाउनलोड किया जा सकता है और उस पर प्रयोग किया जा सकता है।