ejecutando el código de recuperación en onNewScanResult multiplicando el tiempo y, por lo tanto, actualizando la base de datos en consecuencia ..................
inicialización del escáner qr.........
this.html5QrcodeScanner = new Html5QrcodeScanner( qrcodeRegionId, config, verbose ); ```Executing scanner when qrcode is scanned``` this.html5QrcodeScanner.render( this.props.qrCodeSuccessCallback, this.props.qrCodeErrorCallback ); } }
esta es la clase de código qr principal ........
class QrCode extends React.Component { constructor() { super(); this.state = { decodedResults: [], }; this.onNewScanResult = this.onNewScanResult.bind(this); }
aquí es donde está ocurriendo la ejecución múltiple .......
onNewScanResult(decodedText, decodedResult) { `geting data from loacal storage as we saved data earlier in the process about acess level` const qrRes = decodedText; const obj = JSON.parse(qrRes); const token = localStorage.getItem("user"); const userData = JSON.parse(token); const username = userData[0].userId; const accesslevel = userData[0].accessLevel; const result = JSON.parse(qrRes); const ele = result.ele_name; const newdata = { ele, username, accesslevel }; const data = { Element_detail: obj, accessLevel: newdata.accesslevel, }; const verifyUser = localStorage.getItem("accessLeveldetails"); const accessdetail = JSON.parse(verifyUser); ```checking is user is verified or not```...... `checking the acess level you can ignore the checking focus on fetch part`....
Esta parte en particular es que tenemos que dejar de ejecutar varias veces para que la base de datos solo se ingrese con un valor
if (accessdetail.accessLevel === data.accessLevel) { try { ``` this fetch is updating database with multiple entries``` fetch( data.accessLevel === 20 ? `/v0/all_elements_image` : `/v0/${accessdetail.msg}`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(obj), } ).then((res) => { console.log(res); if (!res) { throw res; } return res.json(); }); } catch (error) { console.log("Error:", error); } } else { alert("WRONG USER"); } } }