Reputation: 25
Hooks setState is needs to update synchronously so that application works fine. In class component we can do the callback to it like, this.setState({},()=>{})
, but How to do it using hooks.
Tried with async and await:
const [profilePicValidation, setprofilePicValidation] = useState("")
async function mimeType(headerString, blob){
switch (headerString) {
case "ffd8ffe2":
await setprofilePicValidation(true);
console.log("state",profilePicValidation);
return true;
break;
default:
await setprofilePicValidation(false);
console.log("state",profilePicValidation);
break;
}
}
Original:
const [profilePicValidation, setprofilePicValidation] = useState("")
function mimeType(headerString, blob){
switch (headerString) {
case "ffd8ffe2":
setprofilePicValidation(true);
console.log("state",profilePicValidation);
return true;
break;
default:
setprofilePicValidation(false);
console.log("state",profilePicValidation);
break;
}
}
Upvotes: 1
Views: 90
Reputation: 1681
I have a workaround which may work for you.
import {useState, useEffect} from 'react'
const [profilePicValidation, setprofilePicValidation] = useState("")
useEffect(() => {
// updated profilePicValidation
console.log('state', profilePicValidation)
}, [profilePicValidation])
function mimeType(headerString, blob){
switch (headerString) {
case "ffd8ffe2":
setprofilePicValidation(true);
return true;
break;
default:
setprofilePicValidation(false);
break;
}
}
Upvotes: 2