Link 구성 요소를 사용하려는 경우 Next.js에서 외부 링크가 작동하지 않습니다.

마리오 보스

내부에 외부 URL과 HTML 버튼 태그 를 사용하고 싶을 때 Next.jsLink 에서 간단한 구성 요소가 작동하지 않는다는 사실에 매우 놀랐 습니다.

아래에서 내가 어떻게 문제를 해결했는지 확인할 수 있습니다.

접근 번호 1 :

<Link href="https://stackoverflow.com/">
  <button>StackOverflow</button>
</Link>

접근 번호 2 (프로토콜없는 링크) :

<Link href="//stackoverflow.com/">
  <button>StackOverflow</button>
</Link>

접근 번호 3 (프로토콜이없고 링크 속성 prefetchfalse또는 짝수로 설정된 링크 true) :

<Link href="//stackoverflow.com/" prefetch={false}>
  <button>StackOverflow</button>
</Link>

중요 사항

물론 언급 된 경우는 URL이 내부 일 때 작동합니다.

<Link href="/stackoverflow">
  <button>StackOverflow</button>
</Link>

또는 HTML 버튼 태그를 다음과 같이 HTML A 태그 로 변경할 때 :

<Link href="//stackoverflow.com/">
  <a>StackOverflow</a>
</Link>

필자의 경우 HTML 버튼 태그 또는 Next.js 링크 구성 요소 내부의 다른 UI 구성 요소를 사용하고 싶습니다.

마리오 보스

1. Next.js Link 컴포넌트 내부의 UI 컴포넌트 솔루션.

Next.js 문서를 더 자세히 연구했으며 Link 구성 요소 내부의 내부 UI 구성 요소 ( Semantic UI , Material UI , Reactstrap 등)에 대한 외부 링크를 만드는 데 매우 유용한 속성을 찾았습니다 .

간단한 Semantic UI 버튼 구성 요소를 예로 들어 보겠습니다. 우리가 속성 사용해야 Next.js 링크 구성 요소에 외부 링크를 추가하려면 passHref을 . 이 속성은 false기본적으로 로 설정됩니다 . 이 속성은 Link가 href속성을 자식 에게 강제로 보냅니다 .

import { Button } from 'semantic-ui-react';
import Link from 'next/link';    

const Example = () => (
  <Link href="https://stackoverflow.com/" passHref={true}>
    <Button>StackOverflow</Button>
  </Link>
)

export default Example;

2. HTML 요소에 대한 솔루션 (태그 A와 다름)

Next.js 문서에서 아래 문장을 찾을 수 있습니다.

외부 URL 및 / pages를 사용한 경로 탐색이 필요하지 않은 링크는 Link로 처리 할 필요가 없습니다. 대신 이러한 경우에는 앵커 태그를 사용하십시오.

그리고 나는 그것이 명백하다고 써야하는데,이 경우 HTML 버튼과 같은 다른 태그를 사용해야한다면 onClickLink 컴포넌트없이 이벤트 를 사용해야합니다 . 위의 코드는 다음과 같습니다.

const clickHandle = () => {
  document.location.href = 'https://stackoverflow.com/';
}

const Example = () => (
  <button onClick={clickHandle}>StackOverflow</button>
)

export default Example;

이런 종류의 설명과 접근 방식이 비슷한 혼란에 시달리는 사람에게 도움이되기를 바랍니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

_document 외부에서 Next.js 헤드 구성 요소를 사용하면 페이지가 충돌합니다.

분류에서Dev

구성 요소 외부에서 react-i18next t 함수를 사용합니다. 약속을 올바르게 사용하는 데 문제가 있음

분류에서Dev

후크를 사용하여 React 구성 요소에서 requestAnimationRequest를 취소하면 작동하지 않습니다.

분류에서Dev

EmberJs에서 경로를 전환 할 때 부트 스트랩 구성 요소 (모델, 탭, 드롭 다운)가 작동하지 않습니다.

분류에서Dev

Dagger는 하위 구성 요소에 상위 구성 요소 중 하나와 범위가 충돌하는 경우 예외가 발생하지 않습니다.

분류에서Dev

로그인 후 laravel의 vue js 구성 요소에서 get 경로가 작동하지 않습니다.

분류에서Dev

* ng 내부에서 작동하지 않는 경우 * ng 빈 요소를 렌더링하려면? 이온

분류에서Dev

Next ()는 동일한 구성 요소를 사용하여 beforeRouteUpdate에서 호출되지 않습니다.

분류에서Dev

HTML 페이지에서 링크를 구문 분석하는 정규식은 href 태그에 따옴표가없는 경우 작동하지 않습니다.

분류에서Dev

슬라이드가 사용자 구성 요소 내에서 래핑 된 경우 슬라이드가 작동하지 않습니다.

분류에서Dev

Angular RouterLink 상대 경로는 빈 경로가있는 구성 요소에서 작동하지 않습니다.

분류에서Dev

내가 만든 구성 요소에서 이동 경로가 작동하지 않습니다 (Joomla!)

분류에서Dev

@input을 사용하여 자식 구성 요소의 텍스트 영역 높이를 변경하려는 textarea 부모 구성 요소가 있습니다.

분류에서Dev

AudioContext가 함수 외부에 정의 된 경우 사운드를 생성하지 않습니다.

분류에서Dev

머티리얼 UI 메뉴에서 Next.js 링크 (다음 / 링크) 구성 요소를 사용하는 방법은 무엇입니까?

분류에서Dev

ng-if가 요소에서 사용되는 경우 getElementByID가 각도에서 작동하지 않습니다.

분류에서Dev

조건부 렌더링이 내 기능 구성 요소에서 작동하지 않습니다.

분류에서Dev

SVG 요소 내부의 Vue.js 구성 요소가 작동하지 않습니다.

분류에서Dev

Nginx 구성의 try_files가 심볼릭 링크 경로에서 작동하지 않는 것 같습니다.

분류에서Dev

ReactJS에서 경로를 사용하는 동안 구성 요소가 렌더링되지 않음

분류에서Dev

제 경우에는 jQuery next ()가 작동하지 않았습니다.

분류에서Dev

Next-i18next / React i18next에서 텍스트의 위치를 변경하는 링크 구성 요소를 어떻게 보간합니까?

분류에서Dev

Angular RouterTestingModule 테스트가 라우터 콘센트에서 구성 요소를 렌더링하지 않습니다.

분류에서Dev

Angular2 구성 요소에서 상대 경로가 작동하지 않습니다.

분류에서Dev

next.js 사이트에서 작동하는 반응 구성 요소를 얻는 데 문제가 있습니다.

분류에서Dev

Vuex가 하위 구성 요소에서 작동하지 않습니다.

분류에서Dev

재사용 가능한 구성 요소가있는 라우터보기에서 Vue 전환이 작동하지 않습니다.

분류에서Dev

재사용 가능한 순회 구성 요소는 항상 gremlin에서 작동하지 않습니다.

분류에서Dev

CSP를 실행할 때 외부 링크가 작동하지 않습니다.

Related 관련 기사

  1. 1

    _document 외부에서 Next.js 헤드 구성 요소를 사용하면 페이지가 충돌합니다.

  2. 2

    구성 요소 외부에서 react-i18next t 함수를 사용합니다. 약속을 올바르게 사용하는 데 문제가 있음

  3. 3

    후크를 사용하여 React 구성 요소에서 requestAnimationRequest를 취소하면 작동하지 않습니다.

  4. 4

    EmberJs에서 경로를 전환 할 때 부트 스트랩 구성 요소 (모델, 탭, 드롭 다운)가 작동하지 않습니다.

  5. 5

    Dagger는 하위 구성 요소에 상위 구성 요소 중 하나와 범위가 충돌하는 경우 예외가 발생하지 않습니다.

  6. 6

    로그인 후 laravel의 vue js 구성 요소에서 get 경로가 작동하지 않습니다.

  7. 7

    * ng 내부에서 작동하지 않는 경우 * ng 빈 요소를 렌더링하려면? 이온

  8. 8

    Next ()는 동일한 구성 요소를 사용하여 beforeRouteUpdate에서 호출되지 않습니다.

  9. 9

    HTML 페이지에서 링크를 구문 분석하는 정규식은 href 태그에 따옴표가없는 경우 작동하지 않습니다.

  10. 10

    슬라이드가 사용자 구성 요소 내에서 래핑 된 경우 슬라이드가 작동하지 않습니다.

  11. 11

    Angular RouterLink 상대 경로는 빈 경로가있는 구성 요소에서 작동하지 않습니다.

  12. 12

    내가 만든 구성 요소에서 이동 경로가 작동하지 않습니다 (Joomla!)

  13. 13

    @input을 사용하여 자식 구성 요소의 텍스트 영역 높이를 변경하려는 textarea 부모 구성 요소가 있습니다.

  14. 14

    AudioContext가 함수 외부에 정의 된 경우 사운드를 생성하지 않습니다.

  15. 15

    머티리얼 UI 메뉴에서 Next.js 링크 (다음 / 링크) 구성 요소를 사용하는 방법은 무엇입니까?

  16. 16

    ng-if가 요소에서 사용되는 경우 getElementByID가 각도에서 작동하지 않습니다.

  17. 17

    조건부 렌더링이 내 기능 구성 요소에서 작동하지 않습니다.

  18. 18

    SVG 요소 내부의 Vue.js 구성 요소가 작동하지 않습니다.

  19. 19

    Nginx 구성의 try_files가 심볼릭 링크 경로에서 작동하지 않는 것 같습니다.

  20. 20

    ReactJS에서 경로를 사용하는 동안 구성 요소가 렌더링되지 않음

  21. 21

    제 경우에는 jQuery next ()가 작동하지 않았습니다.

  22. 22

    Next-i18next / React i18next에서 텍스트의 위치를 변경하는 링크 구성 요소를 어떻게 보간합니까?

  23. 23

    Angular RouterTestingModule 테스트가 라우터 콘센트에서 구성 요소를 렌더링하지 않습니다.

  24. 24

    Angular2 구성 요소에서 상대 경로가 작동하지 않습니다.

  25. 25

    next.js 사이트에서 작동하는 반응 구성 요소를 얻는 데 문제가 있습니다.

  26. 26

    Vuex가 하위 구성 요소에서 작동하지 않습니다.

  27. 27

    재사용 가능한 구성 요소가있는 라우터보기에서 Vue 전환이 작동하지 않습니다.

  28. 28

    재사용 가능한 순회 구성 요소는 항상 gremlin에서 작동하지 않습니다.

  29. 29

    CSP를 실행할 때 외부 링크가 작동하지 않습니다.

뜨겁다태그

보관