programing

"Stateless function components cannot be refs"는 무슨 뜻입니까?

newsource 2023. 3. 11. 09:00

"Stateless function components cannot be refs"는 무슨 뜻입니까?

이거 있어요.

const ProjectsSummaryLayout = ({projects}) => {
   return (
      <div className="projects-summary col-md-10">
          <h3>Projects</h3>
          <ul>
              { projects.map(p => <li key={p.id}>{p.contract.client}</li>) }
          </ul>
      </div>
   )
}

const ProjectsSummary = connect(
   state => ({projects: state.projects})
)(ProjectsSummaryLayout)

그 결과:

경고: 상태 비저장 기능 구성 요소를 참조할 수 없습니다(참조 "랩핑" 참조).Connect(ProjectsSummaryLayout)에 의해 작성된 ProjectsSummaryLayout의 인스턴스"입니다.이 참조에 액세스하려고 하면 실패합니다.

나한테 말하려는 게 뭐야?내가 정말 뭘 잘못하고 있는 거야?

나는 여기서 이것에 대한 논의를 보았지만 불행하게도 나는 단지 결론을 이해하지 못한다.

React에서 상태 비저장 구성 요소에 연결할 수 없습니다.

리액트 리덕스 3은ref상태 비저장 여부에 관계없이 제공하는 구성요소로 이동합니다.이 경고는 React에서 나오는 것입니다. 내부적으로는 React Redux 3에 의해ref지정한 스테이트리스 컴포넌트(ProjectsSummaryLayout).

당신은 아무 잘못도 하지 않았고 이 GitHub 댓글에 따르면 당신은 경고를 무시해도 됩니다.

리액트 리덕스 4에서는,ref는 기본적으로 랩된 컴포넌트에 연결되어 있습니다.즉, React Redux 4로 업그레이드하면 경고가 사라집니다.

React에는 일반적으로 사용되는 두 가지 구성 요소 스타일이 있습니다.

  • 기능 컴포넌트
  • 클래스 컴포넌트

Functional one을 사용했을 때 이 오류가 발생했습니다.기능 컴포넌트 사용 중 오류가 발생하였습니다.

기능 컴포넌트에 대응하는 코드 스니펫

정사각형 성분 코드

하지만 Class Component로 바꾸자마자 작동했어요.

효과가 있었다

클래스 컴포넌트에 대응하는 코드 스니펫.

여기에 이미지 설명 입력

기능 컴포넌트를 클래스 컴포넌트로 변경해 보겠습니다.이것으로 당신의 문제가 해결되기를 바랍니다.

언급URL : https://stackoverflow.com/questions/35952607/what-does-stateless-function-components-cannot-be-given-refs-mean