Cannot read properties of undefined (reading '_android')
Cyclodex opened this issue ยท 9 comments
Hi! ๐
Firstly, thanks for your work on this project! ๐
Today I used patch-package to patch qrcode-js-package@1.0.4
for the project I'm working on.
My issue was, after updating to Vue 2.7.13 and @vue/cli 5.0.8 the generated JS code throws an error, because "this" is undefined when running this line:
if (this._android && this._android <= 2.1) {
I think its related to js modules and this is always undefined on global level.
Here is the diff that solved my problem:
diff --git a/node_modules/qrcode-js-package/qrcode.js b/node_modules/qrcode-js-package/qrcode.js
index f89e602..d5e5bd9 100644
--- a/node_modules/qrcode-js-package/qrcode.js
+++ b/node_modules/qrcode-js-package/qrcode.js
@@ -281,7 +281,7 @@ var QRCode;
// Android 2.1 bug workaround
// http://code.google.com/p/android/issues/detail?id=5141
- if (this._android && this._android <= 2.1) {
+ if (this && this._android && this._android <= 2.1) {
var factor = 1 / window.devicePixelRatio;
var drawImage = CanvasRenderingContext2D.prototype.drawImage;
CanvasRenderingContext2D.prototype.drawImage = function (image, sx, sy, sw, sh, dx, dy, dw, dh) {
This issue body was partially generated by patch-package.
Have you solved this problem yet๏ผ
@Sun-hai-yang What do you mean exactly? The problem can be fixed with the above "patch".
Do you need to know how you can apply it to your own codebase?
For me it still gives the same issue, even after the fix
I have the same problem as you๐ฅฒ
I have found a solution! Replace 'qrcodejs2' with 'qrcodejs2-fix`
in package.json:
"qrcodejs2": "^0.0.2", // remove
"qrcodejs2-fix": "^0.0.1", // add
I have found a solution! Replace 'qrcodejs2' with 'qrcodejs2-fix`
in package.json:
"qrcodejs2": "^0.0.2", // remove
"qrcodejs2-fix": "^0.0.1", // add
I have checked the source code of the error location and the solution is consistent with @Cyclodex proposed method
the same problem
the same problem
thank you so much!