Работа с массивом в local.storage, React.js
Столкнулся с такой ситуацией, пишу приложение на функциональном компоненте React.js, есть стейт, который считывается с local.storage, а если он пуст - заменяется на дефолтное значение, в моём случае это пустой массив. Мне нужно по клику на button из текстового input, который есть в моём приложении взять value и засетить его в этот стейт, добавив первым, а затем следующими элементами массива.
Пробовал сделать так
const useLocalStorageList = (key, defaultValue) => {
const stored = localStorage.getItem(key);
const initial = stored ? JSON.parse(stored) : defaultValue;
const [value, setValue] = useState(initial);
useEffect(() => {
localStorage.setItem(key, JSON.stringify(value));
}, [key, value]);
return [value, setValue];
};
const [state, setState] = useLocalStorageList('Load Range', [])
const myInput = document.getElementById('textInputId')
setState(state.push(myInput.value));
Но в панели разработчика, во вкладке Application, вижу, что у объекта Load Range, значение пустого массива заменяется числом 1, а при втором клике на button, React выдаёт ошибку
TypeError: state.push is not a function