Функция
setInfo
обновит состояние асинхронно, поэтому, когда вы вызываете функцию localStorage.setItem
и передаете в нее info
, массив info
еще не обновлялся.
Вы можете создать массив и передать его функциям setInfo
и setItem
. Таким образом, вам не нужно зависеть от функции setInfo
для обновления состояния перед его сохранением в localStorage
const add = () => {
if(website){
const arr = [...info,{website:website,password:generate()}]
setInfo(arr);
localStorage.setItem("data",JSON.stringify(arr));
}
}