[javascript] React Router مع معلمة المسار الاختياري



Answers

بالنسبة لأي من مستخدمي React Router v4 الذين يصلون إلى هنا بعد البحث ، فإن المعلمات الاختيارية في <Route> يتم الإشارة إليها بعلامة ? لاحقة.

إليك الوثائق ذات الصلة:

https://reacttraining.com/react-router/web/api/Route/path-string

المسار: سلسلة

أي مسار عنوان URL صالح يفهمه path-to-regexp .

<Route path="/users/:id" component={User}/>

https://www.npmjs.com/package/path-to-regexp#optional

اختياري

يمكن إضافة المعامِل بعلامة استفهام (؟) لجعل المعلمة اختيارية. سيؤدي ذلك أيضًا إلى جعل البادئة اختيارية.

مثال بسيط على قسم مقسم إلى صفحات من موقع يمكن الوصول إليه باستخدام رقم صفحة أو بدونه.

<Route path="/section/:page?" component={Section} />
Question

أريد أن أعلن مسارًا بمعلمة مسار اختيارية ، وبالتالي عند إضافته الصفحة للقيام بشيء إضافي (على سبيل المثال ، ملء بعض البيانات):

http://localhost/app/path/to/page <= تقديم الصفحة http://localhost/app/path/to/page/pathParam <= تقديم الصفحة ببعض البيانات وفقًا للمسار

في جهاز التوجيه الخاص بي رد فعل لدي المسارات التالية ، من أجل دعم الخيارين (هذا هو مثال مبسط):

<Router history={history}>    
   <Route path="/path" component={IndexPage}>
      <Route path="to/page" component={MyPage}/>
      <Route path="to/page/:pathParam" component={MyPage}/>
   </Route>    
</Router>

سؤالي هو ، هل يمكن أن نعلنه في طريق واحد ؟ إذا قمت بإضافة الصف الثاني فقط ، فلن يتم العثور على المسار بدون المعلمة.

تحرير # 1:

إن الحل المذكور here حول الصيغة التالية لم يعمل لي ، هل هو حل مناسب؟ هل توجد في الوثائق؟

<Route path="/product/:productName/?:urlID?" handler={SomeHandler} />

بلدي نسخة رد فعل هو: 1.0.3






Related