I have the following React component. I am relatively new to react, so don't have all the concepts of using hooks firmly in my grasp.
I've seen a few other questions pointing to the asynchronous nature of the setState function but that does not seem to be the issue here.
Expectation from the code: I expect that as the user inputs values in the fName and lName inputs, the h1 gets automatically updated and rendered
What Actually Happens: As I enter values in the inputs, the typed value does not show up in the input fields on the UI. The heading (h1) also does not update.
Additional Note: The code works as expected if I use "if" statements to check and conditionally update the corresponding property of the Object instead of using prevState[name] = value; in setHeadingText.
import React, {useState} from "react";
function App() {
  const [headingText, setHeadingText] = useState({
    fName: "",
    lName: ""
  });
  function handleChange(e){
    const {name, value} = e.target;
    
    setHeadingText(prevState => {
      prevState[name] = value;
      return prevState;
    })
  }
  return (
    <div className="container">
      <h1>Hello {headingText.fName + " " + headingText.lName}</h1>
      <input type="text" name="fName" placeholder="First Name" value={headingText.fName} onChange={handleChange}/>
      <input type="text" name="lName" placeholder="Last Name" value={headingText.lName} onChange={handleChange}/>
      <button>
        Submit
      </button>
    </div>
  );
}
export default App; 
     
    