코드작성할때
<button onClick={() => {
let copy = 글제목;
copy[0] = '여자코트 추천'
set글제목(copy)
}}>글수정</button>
이렇게하면안됌
<button onClick={() => {
let copy = [...글제목];
copy[0] = '여자코트 추천'
set글제목(copy)
}}>글수정</button>
이렇게해야됌
왜그런거임?
[state변경함수 특징]
1.기존 state랑 신규 state랑 비교해서같으면 변경안해줌
자원절약측면임
2.array나 object 동작방식
let 글제목 = [1,2,3];
글제목[0]= '여자코트 추천';
글제목변경(글제목)
이렇게해도 안됌 왜그럼?
동작을 잘생각해보셈
let 글제목 => RAM으로 저장되는데
array를 수정했지 변수에 있던 화살표(바인딩하는거 모르면 자바스크립트 구조분해 검색 ㄱㄱ)는 수정안됌
기존state도 글제목
변경state도 글제목이라서 변경안해줌
let copy =글제목;
copy[0] ='여자코트 추천'
console.log(copy == 글제목) //애네는 항상같음 그래서 state 변경이안됌
copy는 기존 state랑 똑같아서그럼 =>>referfenc data type 이란것 때문에그런거임
글제목변경(copy)
복사를했기때문에 되야되는데 안됌
변수1&변수2 화살표가 같으면
변수1 == 변수2 비교해도 true나옴
[...글제목];이게뭐냐면 괄호를 벗겨주세요 이런거임 화살표도 달라짐
빡대가리식 정리
기존 state가 array나 obeject다
독립적 카피본[...변수]을 만들어서 수정해야함
Shallow copy나
deep copy를해서하면됌
'리액트' 카테고리의 다른 글
React-router-dom 사용법,컴포넌트만들기 (0) | 2022.05.30 |
---|---|
동적인 UI 만드는 step(props 사용방법까지 써놈) (0) | 2022.04.26 |
컴포넌트 만드는법 (0) | 2022.04.26 |
State를 왜써야하는가(+onClick 사용법) (0) | 2022.04.26 |
리액트 JSX 문법 (ClassName,데이터바인딩, 스타일적용방법) (0) | 2022.04.26 |