কেউ পার্থক্য ব্যাখ্যা করতে পারেন
<Route exact path="/" component={Home} />
এবং
<Route path="/" component={Home} />
আমি 'সঠিক' এর অর্থ জানি না
কেউ পার্থক্য ব্যাখ্যা করতে পারেন
<Route exact path="/" component={Home} />
এবং
<Route path="/" component={Home} />
আমি 'সঠিক' এর অর্থ জানি না
উত্তর:
এই উদাহরণে, কিছুই আসলে। exact
PARAM খেলার মধ্যে আসে আপনি একই নাম আছে যা একাধিক পাথ আছে:
উদাহরণস্বরূপ, কল্পনা করুন আমাদের একটি 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
আবার রুটটি ফিরিয়ে দেবে!
exact
PARAM একটি রুট জন্য আংশিক ম্যাচিং নিষ্ক্রিয় এবং নিশ্চিত করুন যে এটি শুধুমাত্র রুট ফেরৎ যদি পথ বর্তমান 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
গুণাবলী / প্রপটির অর্থ ব্যাখ্যা করার জন্য কিছুই করে না এবং এটি অবশ্যই কোনও "উত্তর" নয়। আপনার আসলে ওপিকে আসলে নিশ্চিত নয় এমন সমস্যার সমাধান দেওয়ার পরিবর্তে জিজ্ঞাসিত প্রশ্নটি সমাধান করার চেষ্টা করা উচিত।