React - from child to parent component

자식이 부모로 보내는 경우에 대해서

Posted by Yan on February 19, 2021

child컴포넌트에서 변경된 값을 parent컴포넌트에서 인지하기

  • SearchMap이라는 컴포넌트 안의 Map컴포넌트에서 map컴포넌트를 클릭할 때마다 클릭한 곳의 좌표값이 생긴다.

  • 이 좌표값을 SearchMap 컴포넌트에서 저장하고 사용하고 때마다

parent component :

1
2
3
4
const [marker, setMarker] = useState({
  x: null,
  y: null,
});

marker라는 변수에 좌표의 x, y값을 담고

1
<Map marker={marker} setMarker={setMarker} />

marker와 setMarker를 <Map>에 props로 보낸다.

set을 prop로 보내면 marker라는 변수의 메모리가 어디에 있는지 가리키는 역할을 한다고 한다.

child component : <Map>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const Map = (props) => {
  useEffect(() => {
    //지도를 만든 후
    kakao.maps.event.addListener(map, "click", function (mouseEvent) {
      let latlng = mouseEvent.latLng;
      var marker = new kakao.maps.Marker({
        position: map.getCenter(),
      });
      marker.setPosition(latlng);
      marker.setMap(map);

      props.setMarker({
        x: latlng.getLng(),
        y: latlng.getLat(),
      });
    });
  });
};

props.setMarker로 변경된 marker값을 넣을 수 있다.