Ref는 render 메서드에서 생성된 DOM 노드나 React 엘리먼트에 접근하는 방법
선언적으로 해결할 수 있는 것은 선언적으로 해결하자.
Dialog의 open()
, close()
를 두지말고 isOpen
prop을 이용하자.
ref를 통해 어떤 일이 일어나도록 할 수 있지만, 상태를 끌어올려서 해결할 수 있으면 해결하자.
Ref는 React.createRef()
메소드를 통해 생성되고 ref
어트리뷰트를 통해 React 엘리먼트에 부착한다.
render메소드안에서 ref가 엘리먼트에게 전달됬다면 ref.current
에 담기게 된다.
class MyComponent extends React.Component {
constructor(props) {
super(props);
this.myRef = React.createRef();
}
render() {
return <div ref={this.myRef} />;
}
}
const node = this.myRef.current;
ref의 값은 노드 유형에 따라 바뀐다.