বিক্রিয়া-রাউটারের সাথে সক্রিয় লিঙ্ক?


91

আমি বাইরে চেষ্টা করছি প্রতিক্রিয়া-রাউটার (V4) এবং আমি এনএভি বন্ধ শুরু থাকার বিষয় আছি এক আছে Link's হতে active। আমি যদি কোনও ট্যাগে ক্লিক করি Linkতবে সক্রিয় স্টাফ কাজ করা শুরু করে। যাইহোক, আমি Linkঅ্যাপটি শুরু হওয়ার সাথে সাথেই হোমটি সক্রিয় হওয়ার জন্য চাই যেহেতু এটি /রুটটিতে লোড হওয়া উপাদান । এই কাজ করতে কোন উপায় আছে কি?

আমার বর্তমান কোডটি এখানে:

const Router = () => (
  <BrowserRouter>
    <div>
      <Nav>
        <Link activeClassName='is-active' to='/'>Home</Link> {/* I want this to start off as active */}
        <Link activeClassName='is-active' to='/about'>About</Link>
      </Nav>

      <Match pattern='/' exactly component={Home} />
      <Match pattern='/about' exactly component={About} />
      <Miss component={NoMatch} />
    </div>
  </BrowserRouter>
)

উত্তর:


218

<Link>আর নেই activeClassNameবা activeStyleসম্পত্তি আছে। প্রতিক্রিয়া-রাউটার ভি 4-এ আপনাকে <NavLink>শর্তযুক্ত স্টাইলিং করতে চাইলে আপনাকে ব্যবহার করতে হবে:

const Router = () => (
  <BrowserRouter>
    <div>
      <Nav>
        <NavLink exact={true} activeClassName='is-active' to='/'>Home</NavLink>
        <NavLink activeClassName='is-active' to='/about'>About</NavLink>
      </Nav>

      <Match pattern='/' exactly component={Home} />
      <Match pattern='/about' exactly component={About} />
      <Miss component={NoMatch} />
    </div>
  </BrowserRouter>
)

আমি বাড়ীতে একটি যথাযথ সম্পত্তি যুক্ত করেছি <NavLink>, আমি মোটামুটি নিশ্চিত যে এটি ব্যতীত হোম লিঙ্কটি সর্বদা সক্রিয় থাকবে যেহেতু আপনার /সাথে থাকা /aboutএবং অন্য কোনও পৃষ্ঠা মিলবে ।


4
আমি আজই এই উত্তরটিকে উপেক্ষা করেছি কারণ আমি ভেবেছিলাম নাভিলিঙ্ক ব্যবহার করা প্রথম নজরে সমস্যাটি এড়িয়ে চলেছে। এটি ব্যাখ্যা করে এমন অন্য কোথাও খুঁজে পাওয়া শক্ত। লোকেরা এই উত্তরটি উঁচু করে তোলা দরকার কারণ তিনি ঠিক ঠিক। আপনাকে NavLink ব্যবহার করতে হবে। এছাড়াও! ঠিক = {সত্য too ঠিক ঠিক। অন্যথায় আপনি যখন সর্বদা সক্রিয় থাকার কারণে অন্যান্য লিঙ্কগুলিতে ক্লিক করেন তখন প্রথম লিঙ্কটি রেন্ডার হয় না। আমি আশা করি আমি আপনাকে আরও 10 বার upvote করতে পারে।
wuno

4
কেবলমাত্র একটি দ্রষ্টব্য নোট, আপনি যদি রেডাক্সের
পেট্র অ্যাডাম

4
নেস্টেড রুটের ক্ষেত্রে আপনারও exactএটি ব্যবহারের প্রয়োজন হতে পারে NavLink
উইক্টর চ্যাজকভস্কি

4
এই লিঙ্কটির জন্য আপনাকে ধন্যবাদ, @ পেটার অ্যাডাম - ভাবছিলেন যে এটি কেন কাজ করছে না! (সমাধানটি হল connectকলটি মোড়ানো withRouter)।
ব্রায়ান বার্নস

4
রেন্ডার পুনরায় একটি অবরোধ redux এড়াতে আপনার বিকল্প প্রদান করতে পারেন pure: falseকরতে connect()পদ্ধতি। কোনও ভিউ আপডেট করা হচ্ছে না সম্পর্কে আরও তথ্য: https://github.com/reduxjs/react-redux/blob/master/docs/troublesh
ुट.md
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.