A component for React. This library works with React and React Native (using React Native SVG).
npm i react-qr-code When using this library with React Native, you will also need to have react-native-svg installed.
npm i react-native-svg cd ios && pod install import React from "react"; import ReactDOM from "react-dom"; import QRCode from "react-qr-code"; ReactDOM.render(<QRCode value="hey" />, document.getElementById("Container"));Note: If the QR code is likely to appear next to dark objects, you will need to wrap it in a light-colored container to preserve the 'quiet zone', e.g.
<div style={{ background: 'white', padding: '16px' }}> <QRCode ... /> </div>Responsive QR code example:
// Can be anything instead of `maxWidth` that limits the width. <div style={{ height: "auto", margin: "0 auto", maxWidth: 64, width: "100%" }}> <QRCode size={256} style={{ height: "auto", maxWidth: "100%", width: "100%" }} value={value} viewBox={`0 0 256 256`} /> </div>| prop | type | default value | platform |
|---|---|---|---|
bgColor | string | '#FFFFFF' | web, ios, android |
fgColor | string | '#000000' | web, ios, android |
level | string ('L' 'M' 'Q' 'H') | 'L' | web, ios, android |
size | number | 256 | web, ios, android |
title | string | web | |
value | string | web, ios, android |
Adheres to the official QR spec and can store up to 2953 characters in value.
react-qr-code encodes data in UTF-8 byte mode to ensure non-ASCII text (e.g., Korean, Japanese, emoji) renders and scans correctly. Just pass a normal JavaScript string:
<QRCode value="한글 테스트 😊" />No additional encoding is required on your side.
- Build the demo library bundle in watch mode:
- In one terminal:
npm run demo-web-watch
- In one terminal:
- Run the demo app:
- In another terminal:
npm run demo
- In another terminal:
- Open the demo in your browser (Expo starts it automatically) and type a non-ASCII value (e.g.,
안녕하세요,こんにちは, or an emoji) into the input. - Scan the QR code with a phone camera app. The decoded text should match exactly.
MIT


