React 클래스 구성 요소에서 super()가 사용되지 않는 이유 이해
저는 React를 처음 접하며 최신 버전의 React를 사용한 React 컴포넌트의 라이프 사이클에 대해 배우고 있습니다.아래 부분 코드의 "슈퍼" 호출에는 사용되지 않는 경고가 표시됩니다.많은 문서들이 여전히 "슈퍼"를 사용하고 있고, 피드백에 링크된 전문 기사에서도 후속 문서가 무엇인지 알 수 없기 때문에 이 문서를 이해하는 데 어려움을 겪고 있습니다.좋은 생각 있어요?감사해요.
class App extends Component {
constructor(props) {
super(props);
}
}
경고는 다음과 같습니다.
constructor React.Component<any, any, any>(props: any, context?: any): React:Component<any, any, any> (+1 overload)
@deprecated
@see - https://reactjs.org/docs/legacy-context.html
'(props: any, context?: any): Component<any, any, any>' is deprecated ts(6385)
당신은 필요하다super(props);
만약 당신이 사용한다면this.props
컨스트럭터 안에 있습니다.그렇지 않으면super();
사용하시는 경우super();
컨스트럭터에서 컨스트럭터 외부에서 호출하는 것은 문제가 되지 않습니다.this.props
다음 링크에서 보실 수 있습니다.https://overreacted.io/why-do-we-write-super-props/
class Button extends React.Component {
constructor(props) {
super(); //we forgot to pass props
console.log(props); //{}
console.log(this.props); //undefined
}
// ...
}
컨스트럭터로부터 호출된 메서드에서 이 문제가 발생하면 더욱 어려워질 수 있습니다.그래서 저는 항상 물려주기를 권합니다super(props)
, 심지어 그것을 통해서도 필요하지 않습니다.
class Button extends React.Component {
constructor(props) {
super(props); //we passed props
console.log(props); //{}
console.log(this.props); //{}
}
// ...
}
super(props);
아직 폐지되지 않았습니다.React 유형 정의 파일의 버그로 인해 실제로 더 이상 사용되지 않는 메시지는 @types/react 16.9.51에서 이미 수정되었습니다. 패키지를 업그레이드하면 바로 사용할 수 있습니다.
npm install @types/react
옵션의 컨텍스트파라미터는 레거시 React 컨텍스트(v16.3 이전)를 참조하기 때문에 권장되지 않는 것 같습니다.어떤 버전의 React를 사용하고 있습니까?
https://reactjs.org/docs/legacy-context.html
TypeScript에서 React를 사용한 적이 없습니다.리액트 매핑이 최신이 아닐 수 있습니다.
이건 jslint의 버그인 것 같아요.코드가 컨텍스트 파라미터를 사용하지 않는 것이 분명합니다.
언급URL : https://stackoverflow.com/questions/63856962/understanding-why-super-is-deprecated-in-a-react-class-component
'programing' 카테고리의 다른 글
gson을 사용한 Java 날짜 UTC (0) | 2023.02.26 |
---|---|
ng-parent $parent가 네스트되었습니다.$index 및 $index (0) | 2023.02.26 |
MUI 구성 요소의 미디어 조회 (0) | 2023.02.26 |
Panda의 데이터 프레임에서 json으로 인덱스 없음 (0) | 2023.02.26 |
선택에 대한 AngularJS null 값 (0) | 2023.02.26 |