প্রতিক্রিয়া: <রাস্তার সঠিক পথ = "/" /> এবং <রাস্তার পথ = "/" /> এর মধ্যে পার্থক্য


162

কেউ পার্থক্য ব্যাখ্যা করতে পারেন

<Route exact path="/" component={Home} />

এবং

<Route path="/" component={Home} />

আমি 'সঠিক' এর অর্থ জানি না


1
উত্তরগুলি দুর্দান্ত। তবে যে কোনও একটি সন্দেহ পেতে পারে "" কেন তখনকার সমস্ত রুটের জন্য আমরা <কোড> নির্ভুল </ কোড> রাখতে পারি না? " এমন কোনও ইউআরএল কল্পনা করুন। <কোড> আপনার রিয়েটওয়েবসাইট . com/getUser/userId= ? </code> এটি এমন একটি উদাহরণ যেখানে ব্যবহারকারীর আইডি ইউআরএলটিতে গতিশীলভাবে খাওয়ানো হবে এবং সুতরাং আমরা আপনার রাউটারে <কোড> নির্ভুল </ কোড> প্রপ সঙ্গে যেতে পারি না।
বিজয়কুমার লাল আলাওয়ালা

উত্তর:


264

এই উদাহরণে, কিছুই আসলে। exactPARAM খেলার মধ্যে আসে আপনি একই নাম আছে যা একাধিক পাথ আছে:

উদাহরণস্বরূপ, কল্পনা করুন আমাদের একটি Usersউপাদান রয়েছে যা ব্যবহারকারীর একটি তালিকা প্রদর্শন করে। আমাদের একটি CreateUserউপাদান রয়েছে যা ব্যবহারকারী তৈরি করতে ব্যবহৃত হয়। এর জন্য ইউআরএল CreateUsersনীচে নেস্ট করা উচিত Users। সুতরাং আমাদের সেটআপটি এরকম কিছু দেখতে পেল:

<Switch>
  <Route path="/users" component={Users} />
  <Route path="/users/create" component={CreateUser} />
</Switch>

এখন এখানে সমস্যাটি, যখন আমরা http://app.com/usersরাউটারে যাব তখন আমাদের সমস্ত সংজ্ঞায়িত রুটগুলি অতিক্রম করবে এবং এটি খুঁজে পাওয়া প্রথম ম্যাচটি ফিরিয়ে দেবে। সুতরাং এই ক্ষেত্রে এটি Usersপ্রথমে রুটটি খুঁজে বের করবে এবং তারপরে এটি ফিরিয়ে আনবে । সব ভালো.

তবে, আমরা যদি যাই http://app.com/users/create, এটি আমাদের সমস্ত সংজ্ঞায়িত রুটগুলি দিয়ে আবার যেতে হবে এবং এটির মধ্যে পাওয়া FIRST ম্যাচটি ফিরে আসবে। প্রতিক্রিয়া রাউটার আংশিক মিল আছে, তাই /usersআংশিক মিলছে /users/create, তাই এটি আবার ভুলভাবে Usersআবার রুটটি ফিরিয়ে দেবে!

exactPARAM একটি রুট জন্য আংশিক ম্যাচিং নিষ্ক্রিয় এবং নিশ্চিত করুন যে এটি শুধুমাত্র রুট ফেরৎ যদি পথ বর্তমান URL- এ একটি সঠিক মিল IS করে তোলে।

সুতরাং এই ক্ষেত্রে, exactআমাদের আমাদের Usersরুটে যুক্ত করা উচিত যাতে এটি কেবল এর সাথে মেলে /users:

<Switch>
  <Route exact path="/users" component={Users} />
  <Route path="/users/create" component={CreateUser} />
</Switch>

দস্তাবেজগুলি exactবিস্তারিতভাবে ব্যাখ্যা করে এবং অন্যান্য উদাহরণ দেয়।


11
"তবে, আমরা যদি অ্যাপ্লিকেশন / ইউজারস / ক্রিয়েটে চলে যাই তবে এটি আমাদের সমস্ত নির্ধারিত রুটগুলি পেরিয়ে আবার পাওয়া প্রথম ম্যাচটি ফিরিয়ে দেবে" " - প্রকৃতপক্ষে এটি সমস্ত রুটকে ফিরিয়ে দেবে যার জন্য এটি একটি ম্যাচ খুঁজে পেয়েছে (পূর্ণ বা আংশিক)। @ চেজ ডিএন্ডা দ্বারা বর্ণিত আচরণটি কেবল তখনই ঘটবে যখন <রুট> এর <স্যুইচ> ট্যাগ দ্বারা আবদ্ধ।
ওয়েটসবিটজ

4
exactআমার মতে ডিফল্ট হওয়া উচিত
আলেকজান্ডার ডার্ক

যদি আমাদের প্রতিটি রুটের সংজ্ঞাটি বিভিন্ন উপাদানগুলিতে থাকে তবে আমার অর্থ /admin//usersঅ্যাডমিন উপাদান এবং /admin/users/createরুট উপাদানটিতে ??? আমার বর্তমানে এই পরিস্থিতি রয়েছে এবং সাধারণ exactসমাধানটি সঠিকভাবে কাজ করে না।
ইউলিও আলেমান জিমেনিজ

আমি মনে করি এই আচরণটি কেবল তখনই কার্যকর হয় যদি উভয়
রুটই

1
@ চেজডিএন্ডে আমার যা প্রয়োজন তা ঠিক বিপরীত। আমার পরিস্থিতি স্পষ্ট করতে এবং সঠিকভাবে উত্তর পেতে আমার এসও তে একটি নতুন উত্তর লিখতে হবে।
ইউলিও আলেমান জিমেনিজ

7

সংক্ষেপে, যদি আপনার অ্যাপ্লিকেশনটির রাউটিংয়ের জন্য একাধিক রুট সংজ্ঞায়িত থাকে তবে এর Switchমতো উপাদানগুলির সাথে সংযুক্ত ;

<Switch>

  <Route exact path="/" component={Home} />
  <Route path="/detail" component={Detail} />

  <Route exact path="/functions" component={Functions} />
  <Route path="/functions/:functionName" component={FunctionDetails} />

</Switch>

তারপরে আপনাকে exactসেই রুটে কীওয়ার্ড রাখতে হবে যা এটির রাস্তাটি অন্য রুটের পাথ দ্বারা অন্তর্ভুক্ত রয়েছে। উদাহরণস্বরূপ হোম পাথ /সমস্ত পাথের অন্তর্ভুক্ত তাই এটির exactসাথে শুরু হওয়া অন্যান্য পাথ থেকে পৃথক করার জন্য কীওয়ার্ড থাকা দরকার /। কারণটিও /functionsপথের সাথে সমান । আপনি যদি অন্য কোনও রুটের পথ ব্যবহার করতে চান /functions-detailবা /functions/open-doorএর মধ্যে অন্তর্ভুক্ত /functionsথাকে তবে আপনাকে রুটটির exactজন্য ব্যবহার করতে হবে /functions



-1

সংক্ষিপ্ত উত্তরটি হ'ল

এটি চেষ্টা করুন।

<switch>
   <Route exact path="/" component={Home} />
   <Route path="/about" component={About} />
   <Route path="/shop" component={Shop} />
 </switch>

1
এটি মূলত exactগুণাবলী / প্রপটির অর্থ ব্যাখ্যা করার জন্য কিছুই করে না এবং এটি অবশ্যই কোনও "উত্তর" নয়। আপনার আসলে ওপিকে আসলে নিশ্চিত নয় এমন সমস্যার সমাধান দেওয়ার পরিবর্তে জিজ্ঞাসিত প্রশ্নটি সমাধান করার চেষ্টা করা উচিত।
ভিক্টর জামানিয়ান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.