反应js localstorage值对象

时间:2019-11-28 19:37:53

标签: javascript reactjs local-storage

我将从后端获得的内容保存到本地存储中:+

   async onSubmit(e){
        e.preventDefault();
        const {login, password } = this.state;

        const response = await api.post('/login', { login,password });
        const user = response.data.user;
        const {jwt} = response.data;
        console.log(user);
        localStorage.setItem('token', jwt);
        localStorage.setItem('user', user);
        this.props.history.push("/home");
    }

  

const user = response.data.user;

返回此:

{id: 2, name: "spt", email: "email", login: "spt", password: "$2a$10$Rqc1VU1TfKD6MypNzbgemeR0O4YeXIFy1XiURjNeHk0gpWJitp4da", …}

两个对象 [对象对象]

2 个答案:

答案 0 :(得分:3)

localstorage不支持对象。如果要将用户存储在localstorage中,则需要对其进行字符串化:JSON.stringify(user)

如果要存储对象,可以使用第三方localforage之类的NPM模块(并非所有浏览器都支持)。

答案 1 :(得分:2)

本地存储是键-值存储,其中key是字符串,value也是string。

您必须对数据进行加密,您可以这样做

localStorage.setItem('user', JSON.stringify(user));

像这样

const user = JSON.parse(localStorage.getItem('user'));