Я пытаюсь сохранить карту в моем локальном хранилище, и по какой-то причине она никогда не сохраняется. то есть просто сохраняет как {}. Самое неприятное, что я уверен, что это сработало вчера!

Любая помощь очень ценится.


export async function getSportsList(){
    let liveOddsApiKey = "blahdedah";
    try{
        let result =  await axios (`${dataSourceURL}${sportDataURL}${liveOddsApiKey}`)

        let sportList = new Map();
        result.data.data.forEach(x=>{
        sportList.set(x.title,x.key);
        });


        console.log("Data Loaded");
        console.log(result);
        console.log(sportList);
        console.log(JSON.stringify(sportList));
       localStorage.setItem('sportsData',JSON.stringify(sportList));
       console.log(localStorage.getItem('sportsData'));
       debugger;



    } catch(error){alert(error);}

}
'''
0
HarryShotta 16 Апр 2019 в 02:09

2 ответа

Лучший ответ

JSON.stringify на карте приводит к {}. См. https://stackoverflow.com/a/29085474/176868.

Попробуйте это вместо ...

const sportList = result.data.data.map(x=>({title:x.title, key:x.key}));

... и остальная часть вашего кода должна работать нормально.

0
Sam Sippe 15 Апр 2019 в 23:33

Вы не можете JSON.stringify Map напрямую. Вы можете сохранить sportslist как массив и сохранить его в localStorage.

Не уверен, какие данные вы получите в result. Я добавил фиктивные данные в следующую скрипку.

См. скрипку

0
Vinit Divekar 15 Апр 2019 в 23:34