'SetState not updating the value in react js functional component

in a functional component i need to show the message to user that email is being sent
i am changing the html element text by set state

here is the code

const [visibility, setVisibility] = useState("hidden");
const [MessageText, setMessageText] = useState("");



 function sendEmail()
    {
    setVisibility('visible');
    setMessageText("Sending email to the recipients.Please wait...");
     functionToSendEmail();
    }


    <label className="cs-label" id="lblMessage" 
style={{ color: '#800000', fontWeight: 'bold', visibility: visibility }}> {MessageText} </label>

here message is not showing in the label element but if instead of setMessageText if i use

document.getElementById('lblMessage').innerHTML = "Email sent to the recipients successfully";

then its working fine showing message to user



Solution 1:[1]

On this code you posted, you're not calling sendEmail() function anywhere. You may call it, then it will call setMessageText().

Try something like this:

<button onClick={() => sendEmail()}>Send email</button>

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 011_dude