켜지면 파란, 꺼지면 검은
condition ? "true" : "false"
render(){
return(
<div>
<h1 className={this.state.isSwitchOn ? "switchOn" : "switchOff"}>Switch</h1>
)
}
함수에다가 if문을 써서 true일 때는 false로
else 일 때는 true로 작성
이걸 또 리펙토링한다면
삼항연산자에서 불린이 들어가면 잘못된 코드이다.
이렇게 되면 위에 처럼 불린을 안쓰고 어차피 컨디션이 앞에는 true, 뒤에는 false이기 떄문에 !(not연산자)를 쓰면 반대이기 때문에 훨씬 간결해 진다.
this.state가 겹치므로 const {isSwitchOn} = this.state
(const isSwitchOn = this.state.isSwitchOn이랑 같은 뜻)
이렇게 넣어서 꺼내 쓸 수도 있다.
데이터를 전달하는 방향은 단방향이다.
부모에서 자식으로 밖에 못 꽂는다.
동급 즉 같은 자식 사이에서는 state를 공유하지 못하기 때문에
부모한테 state값을 주고 props로 공유하는 것이다.
자식끼리 소통하려면 부모를 통해 소통해야됨
위에서 했던 자식의 state값을 그대로 부모한테 옮긴다.
부모한테있는 isSwitchOn값을 자식한테 전달하려고 props이기 때문에 render에 넘기고 싶은 값을 value에 적는다.
자식에 있는 return값에 props를 적용해준다.
toggleSwitch를 적용하기위해 함수를 props로 넘기기 위해 render에 toggleSwitch함수를 넣어준다.(전에는 자기 자신 즉 state로 부여했지만 지금은 부모로 부터 props를 받아 적용한 것.)