작성
·
515
0
안녕하세요? nanoid를 생성할 때 에러가 발생합니다.
import "react-native-get-random-values";
import { nanoid } from "nanoid";
를 이용하여 nanoid를 생성할 때 1번째 까지는 정상적으로 생성되나 2번째부터
const id = nanoid();
위의 생성 부분에서 ERROR TypeError: undefined is not a function, js engine: hermes 에러가 발생합니다.
대신 나노id를 non-secure로 생성하면 계속해서 생성해도 문제 없이 생성됩니다. 버전은 아래와 같습니다만 react-native-get-random-values는 1.9.0 버전으로변경해도 동일한 문제가 발생합니다.
버전 정보
"dependencies": {
"@react-navigation/native": "^6.1.6",
"@react-navigation/native-stack": "^6.9.12",
"expo": "~48.0.15",
"expo-status-bar": "~1.4.4",
"expo-updates": "~0.16.4",
"nanoid": "^4.0.2",
"prop-types": "^15.8.1",
"react": "18.2.0",
"react-native": "0.71.8",
"react-native-get-random-values": "~1.8.0",
"react-native-safe-area-context": "4.5.0",
"react-native-screens": "~3.20.0"
},
이 문제가 반드시 짚고 넘어가야하는 부분인가요? 별로 중요하지 않으면 그냥 비보안 모드나 uuid를 사용하는걸로 넘어가고싶은데 답변 부탁드립니다.
감사합니다.
답변 1
0
안녕하세요 Dozz 님,
https://github.com/expo/expo/issues/17270
https://github.com/LinusU/react-native-get-random-values/issues/41
Expo 48이 되면서 expo-random 패키지가 deprecated 되어서 발생한 문제로 판단됩니다.
중요한 부분은 아니니 Date.now().toString()
코드를 사용하여 타임스탬프로 대체해도 괜찮습니다.
감사합니다.