Используйте npm uuid в reactjs

У меня есть место, где мне нужно использовать пакет npm uuid для генерации уникальных идентификаторов. После установки пакета uuid его использование будет следующим:

const uuid = require('uuid/v1');
uuid();

Но у меня есть ошибка, в которой говорится:

[eslint] Unexpected require(). (global-require)

Моя функция следующая:

someFunction = (i, event) => {
   if (someCondition) {
       //generate some unique id
       const uuid1 = require('uuid/v1');
       uuid1();
       //call some function and pass this id
       someFunction2(uuid1);
    } else{ 
      //generate some unique id
       const uuid2 = require('uuid/v1');
       uuid2();
       //call some function and pass this id
       someFunction2(uuid2);
    }

Как лучше всего использовать require в ReactJs.

Почему вы вообще используете условный импорт? Также имейте в виду, что оба модуля (на самом деле у вас один и тот же модуль в обеих ветвях, но я предполагаю, что это была опечатка) будут объединены, если условие не является статически вычислимым.

Yury Tarabanko 17.10.2018 11:57

Вы можете привести пример?

Michael Philips 17.10.2018 12:00

Пример чего? :) условного импорта? Что ж, ваш код идеален. Вы делаете if (a){ require('')} else {require('')}. Вопрос был в том, почему вы так написали код? Почему вы не можете просто вставить import uuid1 from 'uuid/v1' в начало файла?

Yury Tarabanko 17.10.2018 12:03
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
26
3
41 730
9
Перейти к ответу Данный вопрос помечен как решенный

Ответы 9

Вам не обязательно требовать пакет всегда. Просто потребуйте его только один раз и используйте, где хотите.

const uuidv1 = require('uuid/v1');

if (condition) {
    some_id = uuidv1();
    some_function(some_id);

} else {
    other_id = uuidv1();
    other_function(other_id);
}

Это так просто.

Изменил мою функцию следующим образом: functionName = () => {const uuid = require ('uuid / v1'); if () {const uid = uuid ();}}}, он по-прежнему дает мне [eslint] Unexpected (). (глобальное требование). как решить это?

Michael Philips 17.10.2018 12:04

Сделайте глобальный импорт. Не внутри функций. Попробуйте, если это сработает.

Aravind 17.10.2018 12:10

Я должен был импортировать uuid в react и просто вызвать uuid.vx (); Ваш ответ помог мне понять концепцию. Спасибо. Но в реакции, если линтер включен, это вызывает проблемы.

Michael Philips 17.10.2018 12:11

Загляните в этот stackoverflow.com/questions/9132772/lazy-loading-in-node-js, если вы хотите получить более подробную информацию об использовании внутренних функций require.

Aravind 17.10.2018 12:12
Ответ принят как подходящий

Попробуй это:

import React from "react";
import ReactDOM from "react-dom";
import uuid from "uuid";

function App() {
  return (
    <div className = "App">
      <h1>{uuid.v4()}</h1>
    </div>
  );
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

Это рабочий пример: https://codesandbox.io/s/0pr5vz48kv

Еще один совет: когда я работал с react + typescript, оператор импорта, который работал, был: import * as uuid from 'uuid';

Thiago Valentim 03.03.2020 17:32

как получить уникальный идентификатор устройства? он дает нам идентификатор, который меняется после обновления страницы !!!

Mojtaba Darzi 04.02.2021 21:33

В качестве реакции используйте import.

В проекте Nodejs используйте require.

Если вы хотите использовать import в обычном проекте nodejs, необходимо настроить «babel».

На всякий случай, если вы хотите использовать uuid v4, вы можете импортировать его в React.

import uuid from 'uuid/v4'

Для React JS:

import { v1 as uuidv1 } from 'uuid';
uuidv1(); // ⇨ '2c5ea4c0-4067-11e9-8bad-9b1deb4d3b7d'

Пожалуйста, опишите решение более подробно с дополнительными сведениями, такими как объяснение фактической причины, добавление фрагмента рабочего кода и шаги, которые необходимо выполнить для устранения проблем. Дополнительные сведения см. В руководстве StackOverflow.

Kapil Raghuwanshi 08.05.2020 10:51

вы можете импортировать разными способами

1 ---- Из командной строки Установка

npm i react-uuid
import uuid from 'react-uuid'

и используйте для ключевой переменной, как показано ниже

key = {uuid()}

2 ---- Я всегда использую лучший способ

сначала установите

npm install uuid

затем импортировать

import { v1 as uuidv1 } from 'uuid';

и использовать

uuidv1();

подробнее читайте

Что касается Сентябрь 2020 г., я получил это сначала, установив типы как

yarn add @types/uuid

тогда как

import React from "react";
import ReactDOM from "react-dom";
import { v4 as uuidv4 } from 'uuid';

function App() {
  return (
    <div className = "App">
      <h1>{uuidv4()}</h1>
    </div>
  );
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

Если этот код не будет работать в будущем, обратитесь к этот раздел официальных документов.

import React from "react";
import ReactDOM from "react-dom";
import * as uuid from "uuid";

function App() {
  return (
    <div className = "App">
      <h1>{uuid.v4()}</h1>
    </div>
  );
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

вы должны перейти в эту папку => ваш диск: / ваша папка проекта / node_modules / uuid / dist / v1 и посмотрите папку вашего uuid по умолчанию это находится в верхней папке

import UUID From 'uuid/dist/v1'

Другие вопросы по теме