공식문서를 잘 읽자
공식문서를 잘 읽자...
const onSelectColor = ({ hex }: { hex: string }) => {
"worklet";
console.log(hex);
};
React Native Reanimated 2에서 사용하는, 특별한 주석 같은 역할을 하는 문자열
worklet이라는 문자열을 함수 첫줄에 넣으면..
-> 해당 함수를 네이티브 스레드에서 실행 가능한 코드(Worklet)로 변환해준다!!
즉, Reanimated2는 네이티브 스레드에서 실행되므로..
-> worklet이 없으면 당연히! js 메인스레드에서 실행되어 죽는다!
다행히 방법이 있었다.
안에서 runOnJs를 써주면 그것만 메인스레드에서 돌린다고.
import { runOnJS } from "react-native-reanimated";
const onSelectColor = ({ hex }: { hex: string }) => {
"worklet";
runOnJS(setFillBG)(hex);
};
스레드 잘못 썼다고 냅다 죽는것도 어이가 없다
경고라도 치고 죽어...