useState
hooks function argument is being used only once and not everytime the prop changes. You must make use of useEffect
hooks to implement what you would call the componentWillReceiveProps/getDerivedStateFromProps
functionality
import React,{useState , useEffect} from 'react';
const Persons = (props) => {
const [nameState , setNameState] = useState(props)
useEffect(() => {
setNameState(props);
}, [props])
return (
<div>
<p>My name is {props.name} and my age is {props.age}</p>
<p>My profession is {props.profession}</p>
</div>
)
}
export default Persons;