Это, безусловно, потому что состояние rooms
еще не было обновлено, когда вы console.log
его.
Вы должны иметь в виду, что useState
является assyncronus, то есть измененное значение не отражается мгновенно.
Если вы сделаете:
const handleSubmit = (newRoom) => {
setRooms([...rooms, newRoom])
console.log(rooms)
// Possibly won't get the desired result
}
Но как React , когда состояние изменяется, оно повторяется. Вы можете поместить console.log
в любом месте перед возвращением (для функции рендеринга, если это класс)
const Component = () => {
const handleSubmit = (newRoom) => {
setRooms([...rooms, newRoom])
}
console.log(rooms)
// Possibly you will get the desired result
return (
..your component JSX
)
}