jsx안에서 for문과 if문을 사용하는것이 매우 힘들다.
그래서 map, reduce같은 배열의 메서드를 사용하는데 이번에는 반응속도 게임을 만들어보면서 평균 시간을 구할 때 reduce를 사용해보자.
renderAverage = () => {
const {result} = this.state;
return result.length === 0 ?
null:
<div>평균 시간{this.state.result.reduce((a,c)=>a+c) / this.state.result.length }ms</div>
}
render() {
const {state, message, result} = this.state;
return (
<>
<div
id="screen"
className={state}
onClick={this.onClickScreen}
>
{message}
</div>
{this.renderAverage()}
</>
);
}
보통 JSX에서 조건문을 사용할 떄는 삼항연사자를 많이 사용하거나 값A && 값B 이러한 평가식을 많이 사용한다.
해당 예시에서는 삼항연사자를 사용했다.
result.length === 0 ? null : <div>{~}</div>
이렇게 하면 result.length가 0이 아닐 경우에만 <div>{~}</div>를 렌더링한다.
'코딩이야기 > 인터넷 강의' 카테고리의 다른 글
section4. 4-3 성능 체크와 Q&A, 4-4. 반응속도체크 Hooks 전환 (0) | 2024.05.28 |
---|---|
section4. 4-2. setTimeout넣어 반응속도체크 (0) | 2024.05.27 |
section2. 3-12. React.createRef (0) | 2024.05.23 |
section2. 3-9. React Devtools & 3-10. shouldComponentUpdate (0) | 2024.05.22 |
section2. 3-8. 숫자야구 Hooks로 전환하기(+useState lazy init) (0) | 2024.05.22 |