P粉8059224372023-08-16 15:36:35
으아악
그리고
으아악이것은 명확하지 않기 때문에 흔히 발생하는 문제입니다. 이런 일이 너무 자주 발생하기 때문에 setState
콜백 버전이 있습니다. 코드에서는 실제로 상태를 설정하는 데 이를 사용하지만 최대 10번의 확인을 위해 현재 상태를 가져오는 데도 이를 사용해야 합니다.
그래서 간단한 해결책은 useState의 콜백 함수에 길이 확인을 넣는 것입니다.
으아악위 코드에서 현재 길이가 10보다 크거나 같으면 현재 상태만 반환하고, 그렇지 않으면 새 항목이 추가됩니다.
물론 또 다른 옵션은 useCallback의 상태에 할일을 추가하는 것인데 왜 이것이 FlashList
에서 작동하지 않는지 잘 모르겠습니다.
더 나은 옵션은 Item
를 다른 하위 구성 요소로 추출하는 것입니다. 이를 수행하면 더 많은 구성성, 코드 공유, 그리고 가장 중요한 성능과 같은 다른 이점이 있습니다.