• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

nanoid 생성 에러

23.06.12 12:59 작성 조회수 365

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() 코드를 사용하여 타임스탬프로 대체해도 괜찮습니다.

 

감사합니다.