React - spread

spread에 대해서

Posted by Yan on February 27, 2021

spread

search라는 객체를 만들고 그것을 이벤트를 통해 업데이트 시키기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
const [search, setSearch] = useState({
    type: "clickMap",
    radius: "20000",
  });

 <Select
  defaultValue="20000"
  onChange={(value) => {
    search.radius = value;
    setSearch({ ...search });
  }}
  style=
  value={search.radius}
>
  <Option value="5000">5km</Option>
  <Option value="10000">10km</Option>
  <Option value="15000">15km</Option>
  <Option value="20000">20km</Option>
</Select>

<Select
  defaultValue="주소"
  onChange={(value) => {
    search.type = value;
    setSearch({ ...search });
  }}
  style=
  value={search.type}
>
<Option value="clickMap">지도  클릭하기</Option>
  <Option value="address">주소로 찾기</Option>
  <Option value="keyword">캠핑장 이름으로 찾기</Option>
</Select>
  • select를 통해서 type과 radius를 받는다.

  • onChange에는 search의 radius와 type을 각각의 value값으로 바꿔주고 setSearch에 {…search}를 전달한다.

  • 만약 setSearch(search)로 쓴다면 화면이 다시 렌더링되지 않기 때문이다. 값을 바꿨을 때도 인식하지 못하기 때문이다.

  • …search는 object를 복사하는 개념이라 다른 object로 인식되어 다시 렌더링된다.