简体   繁体   English

来自“react-router-dom”的链接在内部不起作用<div>

[英]Link from 'react-router-dom' does not work inside <div>

Please do not mark duplicate.请不要标记重复。 I read through many answers but none of them solved the problem!我通读了很多答案,但没有一个解决了问题!

When I wrap my component with <Link></Link> everything works fine.当我用<Link></Link>包装我的组件时,一切正常。 But when I wrap the component with a <div></div> and take the <Link> into the component <Link> stops working.但是当我用<div></div>包裹组件并将<Link>带入组件时<Link>停止工作。

<Link> Works: <Link>作品:

//here <Link to='candidate-info' className={styles["candidate-info"]}>
         <div className={`${styles["container"]} ${i === 1 ? styles["selected"] : ''}`}>
          <div className="card" style={{ width: '18rem', minHeight: '21.875rem' }}>
            <div className={styles["image-container"]}>
              <img src="/uploads/profile.jpeg" className="card-img-top fluid" alt="..." />
            </div>
            <div className="card-body">
              <h5 className="card-title">{`${candidate.name} ${candidate.surname}`}</h5>
              <p className="card-text">{candidate.motto}</p>
            </div>

            <div className={`card-body ${styles["button-container"]}`}>
              <button className="btn btn-sm btn-primary">Vote</button>

              <button className="btn btn-sm btn-info">More info</button>

            </div>
          </div>


          <div className={styles["overlay"]}>
            <div className={styles["icon"]} title="User Profile">
              <i className="fa fa-check"></i>
            </div>
          </div>
        </div>
      </Link>

<Link> Doesn't work: <Link>不起作用:

      <div to='candidate-info' className={styles["candidate-info"]}>
        <div className={`${styles["container"]} ${i === 1 ? styles["selected"] : ''}`}>
          <div className="card" style={{ width: '18rem', minHeight: '21.875rem' }}>
      //here <Link className={styles["image-container"]}>
               <img src="/uploads/profile.jpeg" className="card-img-top fluid" alt="..." />
             </Link>
            <div className="card-body">
              <h5 className="card-title">{`${candidate.name} ${candidate.surname}`}</h5>
              <p className="card-text">{candidate.motto}</p>
            </div>

            <div className={`card-body ${styles["button-container"]}`}>
              <button className="btn btn-sm btn-primary">Vote</button>
      //here  <Link to='candidate-info'>
                <button className="btn btn-sm btn-info">More info</button>
              </Link>
            </div>
          </div>


          <div className={styles["overlay"]}>
            <div className={styles["icon"]} title="User Profile">
              <i className="fa fa-check"></i>
            </div>
          </div>
        </div>
      </div>

App.js (just in case) App.js(以防万一)

import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'
import { Container } from 'react-bootstrap'

function App() {
  return (
    <Router>
      <main className='py-3'>
        <Container>
          <Route path='/login' component={LoginPage} />
          <Route path='/voting-summary' component={VotingSummary} />
          <Route path='/candidate-info' component={CandidateInfoPage} exact />
          <Route path='/register-candidate' component={registerCandidates} />
          <Route path='/register-voter' component={registerVoter} />
          <Route path='/' component={MainPage} exact />
        </Container>
      </main>
    </Router>
  );
}

Browser inspect shows <a> tags.浏览器检查显示<a>标签。

<div class="style_candidate-info__gbgqb">
  <div class="style_container__29PKk ">
     <div class="card" style="width: 18rem; min-height: 21.875rem;">

        <a href="/candidate-info">
          <img src="/uploads/profile.jpeg" class="card-img-top fluid" alt="...">
        </a>

        <div class="card-body">
           <h5 class="card-title">As professional Bile</h5>
           <p class="card-text">To make brightest future for our country</p>
        </div>
        <div class="card-body style_button-container__2mqXL">
          <button class="btn btn-sm btn-primary">Vote</button>

          <a href="/candidate-info">
            <button class="btn btn-sm btn-info">More info</button>
          </a>

        </div>
     </div>
     <div class="style_overlay__12tWI">
        <div class="style_icon__peFOR" title="User Profile">
          <i class="fa fa-check"></i>
        </div>
     </div>
  </div>
</div>

Solved!解决了!

It was a css styling issue.这是一个css样式问题。 I had a css that uses position: absolute;我有一个使用position: absolute;的 css position: absolute; :

.overlay {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  height: 100%;
  width: 100%;
  opacity: 0;
  transition: .3s ease;
  background-color: rgb(115, 255, 0);
}

For some reason it was causing the issue.出于某种原因,它导致了这个问题。 Then I changed it to position: static;然后我把它改成position: static; and now it works.现在它起作用了。

如何从 react-router-dom 设置 {Switch} 组件的样式? 我试着用<div>并且不工作</div><div id="text_translate"><p><a href="https://i.stack.imgur.com/4piCG.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/4piCG.jpg" alt="在此处输入图像描述"></a></p><p> <a href="https://i.stack.imgur.com/CyQH3.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/CyQH3.jpg" alt="在此处输入图像描述"></a></p><p> 我在下面有这段代码,并尝试更改 map 组件样式。 但是,它看起来像是来自 Switch 组件。 我怎样才能使屏幕适合这里的“根”元素? 我使用或来自 MUI 的容器和其他东西来调整大小,但它们都不起作用。</p><pre> &lt;MainWrapper&gt; &lt;Visible when={isLogged}&gt; &lt;LeftPanel /&gt; &lt;/Visible&gt; &lt;div style={{width: '100%'}}&gt; &lt;Visible when={isLogged}&gt; &lt;Navbar /&gt; &lt;/Visible&gt; &lt;div style={{height: '100hv'}}&gt; &lt;Switch&gt; &lt;PrivateRouter path='/map' component={MapPage} isLogged={isLogged} redirectTo={'/login'} /&gt; &lt;PrivateRouter path='/profile' component={UserProfile} isLogged={isLogged} redirectTo={'/login'} /&gt; &lt;PrivateRouter path='/login' component={Login} isLogged={;isLogged} redirectTo={'/map'} /&gt; &lt;PrivateRouter path='/registration' component={Registration} isLogged={.isLogged} redirectTo={'/map'} /&gt; &lt;PrivateRouter path='/' component={{}} isLogged={false} redirectTo={'/login'} /&gt; &lt;/Switch&gt; &lt;/div&gt; &lt;/div&gt; &lt;/MainWrapper&gt; ): } } const MainWrapper = styled;div` height: 100vh; display; flex; `;</pre></div> - How to style {Switch} component from react-router-dom? I tried wrapping it with <div> and does not work

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 该 <Link> 来自react-router-dom不会更改URL - The <Link> from react-router-dom does not change the URL 如何从 react-router-dom 设置 {Switch} 组件的样式? 我试着用<div>并且不工作</div><div id="text_translate"><p><a href="https://i.stack.imgur.com/4piCG.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/4piCG.jpg" alt="在此处输入图像描述"></a></p><p> <a href="https://i.stack.imgur.com/CyQH3.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/CyQH3.jpg" alt="在此处输入图像描述"></a></p><p> 我在下面有这段代码,并尝试更改 map 组件样式。 但是,它看起来像是来自 Switch 组件。 我怎样才能使屏幕适合这里的“根”元素? 我使用或来自 MUI 的容器和其他东西来调整大小,但它们都不起作用。</p><pre> &lt;MainWrapper&gt; &lt;Visible when={isLogged}&gt; &lt;LeftPanel /&gt; &lt;/Visible&gt; &lt;div style={{width: '100%'}}&gt; &lt;Visible when={isLogged}&gt; &lt;Navbar /&gt; &lt;/Visible&gt; &lt;div style={{height: '100hv'}}&gt; &lt;Switch&gt; &lt;PrivateRouter path='/map' component={MapPage} isLogged={isLogged} redirectTo={'/login'} /&gt; &lt;PrivateRouter path='/profile' component={UserProfile} isLogged={isLogged} redirectTo={'/login'} /&gt; &lt;PrivateRouter path='/login' component={Login} isLogged={;isLogged} redirectTo={'/map'} /&gt; &lt;PrivateRouter path='/registration' component={Registration} isLogged={.isLogged} redirectTo={'/map'} /&gt; &lt;PrivateRouter path='/' component={{}} isLogged={false} redirectTo={'/login'} /&gt; &lt;/Switch&gt; &lt;/div&gt; &lt;/div&gt; &lt;/MainWrapper&gt; ): } } const MainWrapper = styled;div` height: 100vh; display; flex; `;</pre></div> - How to style {Switch} component from react-router-dom? I tried wrapping it with <div> and does not work “react-router-dom”路由器组件不工作 - "react-router-dom " router component does not work 如何访问a内的href<link> 在 react-router-dom 中标记? - How to access a href inside a <Link> tag in react-router-dom? 如何使用“react-router-dom”中的“链接”使“div”标签可点击? - How to make "div" tag clickable with "Link" from "react-router-dom"? 在链接路径中使用“#”的React-router-dom无法导航到组件 - React-router-dom using “#” in Link path does not navigate to Component React-router-dom-链接更改URL但不呈现 - React-router-dom - Link change url but does not render react-router-dom NavLink isActive 不能正常工作 - react-router-dom NavLink isActive does not work well 谷歌分析是否也适用于 react-router-dom? - Does Google Analytics work for react-router-dom as well? 如何从 React-Router-Dom 停止对 Link 元素的传播? - How to stop propagation on Link elements from React-Router-Dom?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM