I have a functional component and am using useState to store some values in an object. No matter what, on re-render, the object seems to be wiped and then set to the initial value. But if I store, e.g. a simple string, it behaves as expected.
MyCompontent = (props) => {
const [name,setName] = useState('Bob')
const [stateDict,setStateDict] = useState({
number: 1,
color: green,
somethingElse: undefined,
aFourthThing: {}
})
console.log(`${name}, ${number}`)
//first pass, name is Bob, number is 1
//second pass, name changes to Fred, number is still 1
if (name == "Bob") { setName("Fred") }
if (stateDict.number == 1) {
setStateDict({...stateDict, number: 2})
}
}
What about the Object in state makes it behave differently? Or am I doing my update incorrectly? I followed some other SO posts on how to store objects in state.