javascript 如何在react native中生成唯一ID

hiz5n14c  于 2023-03-11  发布在  Java
关注(0)|答案(6)|浏览(274)

我是新的React本地和我的第一个项目在世博会工作。我试图生成唯一的ID为每一个订单,正在放置的用户,下面是我所尝试的

const orderId = () => {
    var S4 = () => {
      return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
    };
    return (
      S4() +
      S4() +
      "-" +
      S4() +
      "-" +
      S4() +
      "-" +
      S4() +
      "-" +
      S4() +
      S4() +
      S4()
    );
  };
  console.log(orderId);

我在终端中得到的是[Function orderId]

emeijp43

emeijp431#

您可以使用以下方法:
https://www.npmjs.com/package/react-native-uuid
npm install react-native-uuid

import uuid from 'react-native-uuid';
uuid.v4(); // ⇨ '11edc52b-2918-4d71-9058-f7285e29d894'

如果您无法在项目中使用其他库,请参阅以下相关问题:
How to create a GUID / UUID

lkaoscv7

lkaoscv72#

function guidGenerator(){
    vary S4 = function(){
        return (((1+Math.random())*0x10000)|0).to String(16).substring(1);
    };
    return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());
}
shyt4zoc

shyt4zoc3#

今天遇到了这个问题....尝试在React Native和Baaam中使用nanoid ...
那么......那么为什么不写我们自己的简单解决方案呢?这个解决方案做得很好:)

export function generateUUID(digits) {
    let str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVXZ';
    let uuid = [];
    for (let i = 0; i < digits; i++) {
        uuid.push(str[Math.floor(Math.random() * str.length)]);
    }
    return uuid.join('');
}
generateUUID(10) // 7ABLSma6F6
generateUUID(32) // FCGQ91Q5r2y3PkkPFuHhFh9JusMMDFwR
wqsoz72f

wqsoz72f4#

回答您的代码问题而不是建议替代库-
您遇到的唯一问题是记录函数对象引用orderID,而不是执行函数orderID(),这就是控制台输出为[Function orderId]的原因。
您可以简单地更改最后一行来执行函数,您的算法将生成UUID。

const orderId = () => {

  const S4 = () => {
    return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
  };

  return (
    S4() +
    S4() +
    "-" +
    S4() +
    "-" +
    S4() +
    "-" +
    S4() +
    "-" +
    S4() +
    S4() +
    S4()
  );
}

console.log(orderId());

// output: "87dae617-994c-c506-3a43-da55ec0586e4"
qlvxas9a

qlvxas9a5#

2023-02:Expo SDK 48更新

现在可以使用expo-crypto生成uuid v4:

import * as Crypto from "expo-crypto";

const UUID = Crypto.randomUUID();

更多信息见官方文件。

w7t8yxp5

w7t8yxp56#

您可以使用urid包npm install urid

import urid from 'urid';

urid(); // qRpky22nKJ4vkbFZ

在此阅读完整文档:https://www.npmjs.com/package/urid

相关问题