[리액트(React) Study Log] [Person App-010] Manipulating the State

 

1. state 조작

 - extending Component setState method 를 제공함.

(setState 는 기존 state 를 새 상태 값과 merge . state 교체가 아니기 때문에 setState 에서 지정한 key 에 해당하는 상태값만 변경되고 지정하지 않은 otherState(아래 코드에서) 의 값은 기존 값으로 유지됨.)

 - react 에서 state 가 변경되었을 때 react state 변경을 자동으로 인식해서 re-rendering 을 발생시키는데, this.setState 구문을 사용(immutable 한 방법 : 이전 상태 값을 유지하면서 새로운 상태 값으로 변경)해야 reactstate 의 변경을 인식할 수 있음.

 - react 에서 state 변경시는 immutable 하게 조작해야함. this.setState immutability 를 유지하지만 아래 형태 처럼 변수 값을 직접 지정하는 방식으로 state 값을 지정하면 immutability 가 깨지기 때문에 절대 안 됨. (이렇게 하면 상태가 변경되어도 변경된 상태 값이 브라우져에 반영되지 않음.) setState 를 사용하지 않는 immutable state 조작법에 대해서는 뒤에 다시 설명.

this.state.persons[0].name = 'David';

 

2. setState 를 이용하여 switchNameHandler 함수 정의

switchNameHandler = () => {

    // console.log('Was clicked!');

    // Do Not Use : this.state.persons[0].name = 'David';

    this.setState({

      persons: [

        { name: 'David', age: 25 },

        { name: 'Lina', age: 25 },

        { name: 'Nick', age: 25 }

      ]

    })

  }

 

3. 브라우져에서 버튼을 클릭해서 state 변경 확인.

 - 최초 화면


 - 버튼 클릭 후 화면


+ Recent posts