反应js本地存储值对象

Fel*_*ipe -2 javascript local-storage reactjs

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

   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");
    }
Run Code Online (Sandbox Code Playgroud)

我的

const user = response.data.user;

返回这个:

{id: 2, name: "spt", email: "email", login: "spt", password: "$2a$10$Rqc1VU1TfKD6MypNzbgemeR0O4YeXIFy1XiURjNeHk0gpWJitp4da", …}
Run Code Online (Sandbox Code Playgroud)

两个对象 [对象对象]

svl*_*ccc 7

本地存储是键值存储,其中键是字符串,值也是字符串。

你必须对你的数据进行字符串化,你可以这样做

localStorage.setItem('user', JSON.stringify(user));
Run Code Online (Sandbox Code Playgroud)

并得到它

const user = JSON.parse(localStorage.getItem('user'));
Run Code Online (Sandbox Code Playgroud)


小智 6

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

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