react-native panResponder 질문입니다.


(개유) #1

현재 사용자의 터치를 인식하여 터치이후 드래그 된 길이만큼 색을 변경시키는 컴퍼넌트를 만들고 있습니다. panResponder를 이용하여 드래그 된 길이가 60이하인 경우 첫번째 View의 색을 변경하고, 드래그 길이가 60이상인 경우 첫번째와 두번째 View의 색을 변경하는 코드를 작성하였는데, 현재 문제는 드래그된 길이에 상관없이 첫번째 View의 색만 변경된다는 것 입니다.
코드는 아래와 같습니다. console.log를 확인 해 본 결과 evt.nativeEvent.locationX의 값과 상관없이 index1이 찍히는 것을 확인 할 수 있었습니다. 제 생각에는 아마 해당 변수가 사용자가 터치하는 시간동안 지속적으로 변경되는 값이라서 if문이 제대로 작동하지 않는 것 같습니다. 만약 제 예상이 맞다면 이런경우에는 어떻게 처리해 줘야 하나요?
image


(이종은(Jong Lee)) #2

if문 괄호안의 코드가 잘못되었습니다. 항상 true가 나오는 조건입니다.

1< 100 < 60 은 항상 true가 나옵니다. 이렇게 적지 않고 다음과 같이 작성해야 false가 나옵니다.

1< 100 && 100 < 60

1 < 100 < 60은 우선 1 < 100을 평가하여 true가 반환되고 true < 60은 true가 형변환되어 평가되기 때문에 1 < 60과 동일하게 true가 됩니다.


(이종은(Jong Lee)) #3

코드는 캡쳐를 넣기 보다는 마크다운 코드 삽입하는 방법으로 삽입해주시면 다른 분들이 좀 더 코드를 쉽게 확인 할 수도 있고 검색도 코드 내용으로 가능하게 됩니다.