"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
'programing' 카테고리의 다른 글
GCM 오류=JSON을 통해 메시지를 보내는 등록 (0) | 2023.03.11 |
---|---|
AngularJs: 새로고침 페이지 (0) | 2023.03.11 |
ng-bind-html-unsafe를 제거한 상태에서 HTML을 삽입하려면 어떻게 해야 하나요? (0) | 2023.03.11 |
Wordpress에서 Ajax 파일 업로드 - FormData를 전달할 수 없습니다. (0) | 2023.03.11 |
(JSON:ParserError) "{N}: "alihack <%eval request(\"alihack.com\)"에서 예기치 않은 토큰"%> (0) | 2023.03.11 |