UNPKG

react-qrcode-scan

Version:

React componnent write by typescript for scan qrcode base on instascan.js

76 lines (54 loc) 3.07 kB
# react-qrcode-scan React componnent write by typescript for scan qrcode. Base on instascan.js #### Usage ``` yarn add react-qrcode-scan // or npm install react-qrcode-scan --save ``` ``` import { QRScaner, Camera } from "react-qrcode-scan"; export default class QRReader extends React.Component<RenderProps, RenderState> { ... render() { const { results, camera } = this.state; return ( <Camera onError={this.onError}> { cameras => cameras.length > 0 ? <QRScaner onStart={this.onStart} onScan={this.onScan} camera={cameras[0]} onError={this.onError} /> : <div> No Camera</div>} </Camera> ); } } ``` > You can get full example code [Here](./example/scan.tsx) > Or See [Live example](https://189.github.io/react-qrcode-scan/dist/index.html) #### API react-qrcode-scan exports two component: ##### `<Camera />` `<Camera/>` will fetch for the available cameras on your device, and return the camera device list; ##### `<QRScaner/>` Scanner Properties | name | type | required | description | |-------------------|-------------------|------------|---------------------------------------------------| | camera | object | true | Camera object returned by \<Camera \/\> | | onError | (err:Error) => volid | true | Emitted when scan got error | onScan | (content:string) => volid | true | Emitted when a QR code is scanned using the camera in continuous mode | | stop | boolean | false | If stop is true the camera stops and vice-versa | | onStart | (camera) => volid | false | Called when camera is active and scanning has started | | onStop | () => volid | false | Called when camera and scanning have stopped | | onActive | function | false | Emitted when the scanner becomes active as the result of stop becoming false or the tab gaining focus | | onInactive | () => volid | false | Emitted when the scanner becomes inactive as the result of stop becoming true or the tab losing focus | | className | string | false | classname, will be used for descript video tag | | options | object | false | Same options from [Instascan.Scanner][scanoption] | | style | React.cssProperty | false | inline styles, will be pass to video tag | | videoAttr | React.VideoHTMLAttributes<any> | false | video tag attribute [scanoption]: https://github.com/schmich/instascan#let-scanner--new-instascanscanneropts For more details check the [Instascan API](https://github.com/schmich/instascan#api) ##### How to run example ``` $ git clone repo $ yarn run start $ open http://localhost:8898 ```