Consider the below state vatiable,

const [messages, setMessages] = useState<ChatMessage[]>([]);

How not to update it,

setMessages([
	...messages,
	{
	  message: input,
	  role: 'user'
	}
])

How to update it,

setMessages((prevState) => [
  ...prevState,
  {
	message: input,
	role: 'user'
  }
])