React QR Code Scanner

Table of contents
Use Case
You need a scanner component for Scanning QR codes from a web browser based app.
Compatibility
This component has been tested in the following browsers:
- Chrome Mac OS & Android
- Firefox Mac OS & Android
- Safari Mac OS & IOS
Since this library does internal use of hooks you need React >= 16.8.0
.
Installation
You can install this library via NPM or YARN.
NPM
npm i react-qr-code-scanner
YARN
yarn add react-qr-code-scanner
Example Usage
After reading and performing the previous steps, you should be able to import the library and use it like in this example:
import React, { useState } from 'react';
import { QrScanner } from 'react-qr-code-scanner';
const Test = (props) => {
const [data, setData] = useState('No result');
return (
<>
<QrScanner
onsuccess={(result, error) => {
if (!!result) {
setData(result);
}
if (!!error) {
console.info(error.message);
}
}}
style={{ width: '100%' }}
/>
<p>{data}</p>
</>
);
};
Component API
The QrCodeScanner
component has the following props:
constraints | MediaTrackConstraints | { facingMode: 'user' } | Specify which camera should be used (if available). |
onSuccess | function | none | Scan event handler |
videoId | string | video | The ID for the video element |
scanDelay | number | 500 | The scan period for the QR hook |
ViewFinder | component | none | ViewFinder component to rendering over the video element |
className | string | none | ClassName for the container element. |
containerStyle | object | none | Style object for the container element. |
videoContainerStyle | object | none | Style object for the video container element. |
videoStyle | object | none | Style object for the video element. |
License
Distributed under the MIT license. See LICENSE for more information.