state 초기화를 어디에서 해야하는가?에 대한 의문이 있었다. 자세히 파야하는 이슈는 아니지만 코드 별로 state 초기화를 하는 위치가 달라서 도대체 그 이유가 무엇인지를 정리해보았다.
class SampleComponent extends React.Component<any, any> {
constructor(props){
super(props);
this.state = {
isOpen: false,
// ....
}
}
}
class SampleComponent extends React.Component<any, any> {
state = {
isOpen: false,
// ....
}
// ...
}
CRA(create-react-app)
를 사용하지 않고, webpack
을 직접 구성했다면 추가적인 환경설정이 필요하다. 필요한 추가 설정은 아래와 같다. npm install --save-dev babel-plugin-transform-class-properties
presets: [
"@babel/preset-env",
"@babel/preset-react"
],
// plugins 추가
plugins: [
"transform-class-properties"
]