I have a problem with a library react-speech-recognition . newcontent is a state when modify this state inside useeffect print undefined and I also want modify this state for transcript also print undefined
const Room = () => {
let{
transcript,
} = useSpeechRecognition();
const [newContent,setnewcontent]=useState('')
}
console.log(transcript)-->//here successful
useEffect(() => {
console.log(transcript)-->//here undefined
setnewcontent(transcript)
console.log(setnewcontent)-->//here undefined
},[])
CodePudding user response:
Use 2 separate useEffect
. One to update the state and other to keep track on it and do the console.log
as follows.
// This useEffect will trigger if any change detected in transcript variable
useEffect(() => {
setnewcontent(transcript)
},[transcript])
// This useEffect will trigger if any change detected in newContent state
useEffect(() => {
console.log(newContent)
},[newContent])