কেউ পার্থক্য ব্যাখ্যা করতে পারেন
<Route exact path="/" component={Home} />
এবং
<Route path="/" component={Home} />
আমি 'সঠিক' এর অর্থ জানি না
কেউ পার্থক্য ব্যাখ্যা করতে পারেন
<Route exact path="/" component={Home} />
এবং
<Route path="/" component={Home} />
আমি 'সঠিক' এর অর্থ জানি না
উত্তর:
এই উদাহরণে, কিছুই আসলে। 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বিস্তারিতভাবে ব্যাখ্যা করে এবং অন্যান্য উদাহরণ দেয়।
exactআমার মতে ডিফল্ট হওয়া উচিত
/admin//usersঅ্যাডমিন উপাদান এবং /admin/users/createরুট উপাদানটিতে ??? আমার বর্তমানে এই পরিস্থিতি রয়েছে এবং সাধারণ exactসমাধানটি সঠিকভাবে কাজ করে না।
সংক্ষেপে, যদি আপনার অ্যাপ্লিকেশনটির রাউটিংয়ের জন্য একাধিক রুট সংজ্ঞায়িত থাকে তবে এর 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।
এখানে একবার দেখুন: https://reacttraining.com/react-router/core/api/Route/exact-bool
হুবহু: bool
সত্য হলে, পাথটি location.pathnameঠিক মেলে তবেই মিলবে ।
**path** **location.pathname** **exact** **matches?**
/one /one/two true no
/one /one/two false yes
সংক্ষিপ্ত উত্তরটি হ'ল
এটি চেষ্টা করুন।
<switch>
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
<Route path="/shop" component={Shop} />
</switch>
exactগুণাবলী / প্রপটির অর্থ ব্যাখ্যা করার জন্য কিছুই করে না এবং এটি অবশ্যই কোনও "উত্তর" নয়। আপনার আসলে ওপিকে আসলে নিশ্চিত নয় এমন সমস্যার সমাধান দেওয়ার পরিবর্তে জিজ্ঞাসিত প্রশ্নটি সমাধান করার চেষ্টা করা উচিত।