#javascript #arrays #reactjs #object
Вопрос:
Я пытаюсь превратить массив, в котором каждый элемент представляет собой массив, содержащий ключ и значение(например, записи), я пытаюсь преобразовать его обратно в элемент объекта с помощью метода Object.fromEntries(array)
, но, похоже, возникла проблема.
Это ошибка, которую я получаю: TypeError: Object.fromEntries requires the first iterable parameter yields objects
Вот как я использую этот метод:
const saved = JSON.parse(Object.fromEntries(localStorage.getItem(key)))
Значение локального хранилища, которое он должен получить:
[["$typeof",null],["type",null],["key",null],["ref",null],["props",{"data":"a data containing collections of objects(fetched from an API)"}]
Поскольку это может быть полезно, я пытаюсь сохранить компонент react(да, я работаю над ReactJS) в локальном хранилище и вернуть его при необходимости.
Если вы не думаете, что эта часть кода не является причиной появления этой проблемы, пожалуйста, дайте мне знать.
Комментарии:
1. Сначала вам нужно выполнить синтаксический анализ, так как в localStorage хранятся только строки.
const saved = Object.fromEntries(JSON.parse(localStorage.getItem(key)))
Однако почему вы вообще превратили это в массив? Вы можете сделатьlocalStorage.setItem(key, JSON.stringify(theObject))
и просто проанализировать это при загрузке данных.2. У тебя все наоборот,
const saved = Object.fromEntries(JSON.parse(localStorage.getItem(key)))
3. Чтобы уточнить: JSON.stringify используется для преобразования объекта в текст. Это называется сериализацией и используется для передачи объекта или его хранения. Чтобы вернуть фактический объект, вы вызываете JSON.parse() в строке, которую вы получили / загрузили.
4. Ну, я вызываю JSON.stringify при его хранении, так что разбор не вызовет никаких проблем, я думаю
5. Попытался изменить Object.fromEntries и JSON.parse, но не говорит, что null не является объектом