ToDo 앱을 연습하는데 ID생성이 안되더라..
uuid 라는 패키지를 사용하면 된다던데 한참을 헤메었다.
우선, 맥에서는 Xcode가 설치되어 있지 않으면 안되니 필히 설치할 것.
다음, npm 으로 다음 명령어를 입력해서 uuid를 설치한다
> npm install --save uuid
그리고나서 필요한 페이지에 다음과 같이 임포트 하면 된다던데...
import { v1 as uuidv1 } from 'uuid';
const ID = uuidv1();
안된다..에러난다..ㅠㅠ
Error : crypto.getRandomValues() not supported.
신나게 찾아보니 react-native-get-random-values 를 설치하라길래 했다.
> npm install --save react-native-get-random-values
설치 후 페이지에 임포트
import 'react-native-get-random-values';
그래도 에러가 난다...열심히 찾아봤는데 버전문제?? v1은 비추라고 다른 거 써봤는데 똑같다.
Error:TypeError: null is not an object (evaluating 'RNGetRandomValues.getRandomBase64')
콘솔에도 안찍히고..그냥 랜덤값이 생성이 안되더라..상수로 값 집어넣으면 멀쩡하게 움직임.
리엑트 네이티브에서 사용가능한 react-native-uuid 도 있다길래 해봤는데 안된다..ㅠㅠ
Error : undefined Unable to resolve module `buffer` from `node_modules/safe-buffer/index.js`: buffer could not be found within the project.
버퍼 지워보고 실행해도 똑같고...재설치를 해봐도 안되고...그러다가 참고 링크를 참조해서 해결했다.
방법은 null is not an object
를 해결하기 위해서、16 비트로 된 랜덤값을 ( 0 – 255 ) 생성해서 uuid
의 생성시드값으로 전달하는 것이다. 호오...난 역시 재능이 없나봐..ㅠㅠ
자바스크립트 파일을 하나 만들어서 uuidSeed.js 로 이름붙이고 다음과 같이 랜덤값 생성
필요한 곳에서 임포트:
uuidv4({ random: seed() }) 를 생성하면 요렇게 값이 나온다
:
[참고]
https://www.jacepark.com/how-to-use-uuid-in-react-native-with-expo/
댓글
댓글 쓰기