Я пытаюсь сохранить массив в локальном хранилище в моем приложении реагирования, чтобы, если пользователь переходит на другую страницу приложения или закрывает приложение и снова открывает его, значение остается прежним.
В моем индексе. js (упрощенный код):
import ls from 'local-storage';
function HomeIndex() {
const [testString, setTestString] = useState(ls('localStorageText') || '');
if(condition){
const array = [1,2,3];
const saveArray = {key: array};
localStorage.setItem('key1', JSON.stringify(saveArray));
const restoreValue = localStorage.getItem('key1');
setTestString(JSON.parse(restoreValue).key);
}
return (
<div className="col-12">
{testString}
</div>
);
}
Когда я нажимаю кнопку, и условие выполняется, значение testString
отображает 123
в виде должен. И это имеет значение. Однако он не работает, когда я пытаюсь добавить свой собственный массив.
const array = reversedHistoryText;
const saveArray = {key: array};
localStorage.setItem('key1', JSON.stringify(saveArray));
const restoreValue = localStorage.getItem('key1');
setTestString(JSON.parse(restoreValue).key);
Он ничего не отображает при первом нажатии кнопки, а затем выдает ошибку во второй раз:
Error: Minified React error #31;
Когда я делаю этот тест:
setTestString(JSON.stringify(reversedHistoryText));
Результат []