Number.isInteger() 메서드는 주어진 값이 정수인지 판별합니다.
매개변수로 값을 받고 반환값으로는 Boolean을 반환합니다.
const value = '1'
Number.isInteger(value); // True
const value2 = 1
Number.isInteger(value); // False
해당코드는 리액트에서 선택한 배열을 선택해주어 이벤트를 발생시키는 로직입니다.
CompareBox 자식 컴포넌트로 내려주는 부모 컴포넌트
const [currTarget, setCurrTarget] = useState<number | null>(null)
.
.
.
. <중략>
<CompareBox
refImage = {
currTarget
? foodQueries[currTarget].data?.refPhoto
: work.after
}
/>
위 코드에서 refImage 안에 currTarget은 초기값이 null로 선언되어 있습니다. 해당 코드는 currTarget이 true일 때 foodQueries를 보냅니다. compareBox 자식 컴포넌트에서 0~N번째 존재. 1번 선택시 currTarget True 0번 배열 선택 시 false 즉 의도했던대로 이벤트가 발생하지 않습니다.
const [currTarget, setCurrTarget] = useState<number | null>(null)
.
.
.
. <중략>
<CompareBox
refImage = {
Number.isInteger(currTarget)
? foodQueries[currTarget].data?.refPhoto
: work.after
}
/>
Number.isInteger()로 정수 판별을 해주어 null과 숫자만 구분하게 해주어 의도한대로 작동시켰습니다.
[JavaScript] 음수로 배열접근 array.prototype.at() (0) | 2022.04.27 |
---|---|
[JavaScript] JSON, Javascript Object (0) | 2022.04.24 |
[JavaScript] 완벽가이드 Hoisting (0) | 2022.02.20 |
[JavaScript] Syntactic Sugar (0) | 2022.01.09 |
[JavaScript] JS DOM (0) | 2022.01.02 |