मैं प्रतिक्रिया राउटर के next
संस्करण का उपयोग कर रहा हूं, और ऐसा लगता है कि यह पैराम छोड़ रहा है। मैं channelId
के मान को बनाए रखने के लिए नीचे दिए गए रीडायरेक्ट की अपेक्षा करता हूं, लेकिन to
मार्ग इसके बजाय पथ में शाब्दिक स्ट्रिंग ":channelId
" का उपयोग करता है।प्रतिक्रिया राउटर रीडायरेक्ट ड्रॉप
<Switch>
<Route exact path="/" component={Landing} />
<Route path="/channels/:channelId/modes/:modeId" component={Window} />
<Redirect
from="/channels/:channelId"
to="/channels/:channelId/modes/window" />
</Switch>
यह एक resolved issue की तरह दिखता है, लेकिन यह काम नहीं कर रहा। क्या to
मार्ग पर जाने के लिए मुझे कुछ और चाहिए?
import pathToRegexp from 'path-to-regexp';
import { Route, Switch, Redirect } from 'react-router-dom';
const RedirectWithParams = ({ exact, from, push, to }) => {
const pathTo = pathToRegexp.compile(to);
return (
<Route exact={exact} path={from} component={({ match: { params } }) => (
<Redirect to={pathTo(params)} push={push} />
)} />
);
};
के उपयोग का उदाहरण:
समाधान, मैट मिला? –
@ सेबेस्टियनरोथ मैंने दुर्भाग्य से कभी नहीं किया। मैं घटक के भीतर रीडायरेक्ट का उपयोग कर, अब चीजों को एक अलग तरीके से कर रहा हूं। हालांकि, यह सत्यापित करना बहुत अच्छा होगा क्योंकि इसे उपरोक्त लिंक में विज्ञापित के रूप में काम करना चाहिए। –
एफडब्ल्यूआईडब्ल्यू, मैंने इस प्रश्न को प्रतिक्रिया-राउटर डिस्कॉर्ड चैनल में पूछा है। मैंने ऐसा कुछ ऐसा करने के साथ समाप्त किया, जिस मार्ग में एक रेंडर विधि है जो प्रोप से खींचे गए मानों के साथ रीडायरेक्ट देता है। –