Компонент React QRScan

#javascript #reactjs #typescript #qr-code #barcode-scanner

Вопрос:

Я использую библиотеку react «qrscan» для сканирования штрих-кода с помощью камеры моего устройства. Проблема в том, что когда я успешно сканирую свой штрих-код и получаю значение, я не могу выключить камеру, и поэтому QR-код продолжает сканироваться и регистрирует значение несколько раз. Как я могу сделать так, чтобы камера выключалась, и я получал только начальное значение при сканировании?

Пример кода для сканирования:

 const [scanning, setScanning] = useState(false);
const [scannerValue, setScannerValue] = useState('');

const onFind = (value: string) => {
    setScannerValue(value);
    setScanning(false);
    console.log(value);
  };

return (
  {scanning ? (
        <QRScan onFind={onFind} />
      ) : (
        <Fragment>
          <button onClick={() => setScanning(true)}>Scan</button>
          <h4>value: {scannerValue}</h4>
        </Fragment>
      )
  }
)
 

По какой-то причине компонент QRScan продолжает работать даже после scanning того, как значение равно false .

Комментарии:

1. Попробуйте другую библиотеку, та, которую вы используете, не обновлялась в течение 3 лет, поэтому есть вероятность, что у нее проблемы с функциональными компонентами. Кажется, это работает: github.com/JodusNodus/react-qr-reader

2. Верно… Спасибо!