Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 反应返回未定义的localStorage对象属性_Javascript_Reactjs - Fatal编程技术网

Javascript 反应返回未定义的localStorage对象属性

Javascript 反应返回未定义的localStorage对象属性,javascript,reactjs,Javascript,Reactjs,我只是在玩React,通过localStorage进行用户身份验证。下面给出了代码片段 export const loginUser = userData => dispatch => { axios.get("http://localhost:5000/users") .then((res)=>{ res.data.map(user => { if(user.email

我只是在玩React,通过
localStorage
进行用户身份验证。下面给出了代码片段

export const loginUser = userData => dispatch => {
    axios.get("http://localhost:5000/users")
        .then((res)=>{
            res.data.map(user => {
                if(user.email === userData.email){
                    if(user.password === userData.password){
                        const loggedIn = user;
                        console.log(loggedIn)
                        localStorage.setItem("loggedIn", loggedIn);
                        console.log(localStorage.loggedIn.name)
                        dispatch(setCurrentUser(user));
                    }
                }
            })
        })
        .catch((err)=>dispatch({
            type: GET_ERRORS,
            payload: err.data
        }))
}
现在看看
console.log
输出


我无法访问用户信息,因为它给了我
未定义的
为什么会发生这种情况?如何解决此问题?

您从localstorage获取用户名的语法错误

JSON.parse(localstorage.getItem('loggedIn')).name
localstorage.getItem('loggedIn')
将从localstorage提供一个用户对象,但该对象是字符串形式的

因此,您需要将其转换为一个对象,对于该对象,
JSON.parse
将非常有用


这将为您提供用户名

您从localstorage获取用户名的语法错误

JSON.parse(localstorage.getItem('loggedIn')).name
localstorage.getItem('loggedIn')
将从localstorage提供一个用户对象,但该对象是字符串形式的

因此,您需要将其转换为一个对象,对于该对象,
JSON.parse
将非常有用

这将为您提供用户名

将项目设置为

 localStorage.setItem("loggedIn", JSON.stringify(loggedIn));
然后必须以这种方式传递,这样它将访问
name
键在
localStorage
中的值

console.log(localStorage.getItem('loggedIn').name);
将项目设置为

 localStorage.setItem("loggedIn", JSON.stringify(loggedIn));
然后必须以这种方式传递,这样它将访问
name
键在
localStorage
中的值

console.log(localStorage.getItem('loggedIn').name);

存储接口的方法在传递键名时,将返回给定存储对象中该键的值,如果该键不存在,则返回null。您需要使用
localStorage.getItem(“loggedIn”)
所以我必须传递
localStore.getItem('name')?
是的,它将允许您访问存储在localStorage中的值。尝试过它,但它返回
null
您必须解析它。使用
JSON.parse()
从字符串转换对象。但是您必须将其转换为字符串,同时将其存储在localStorage中,如
localStorage.setItem(“loggedIn”,JSON.stringify(loggedIn))
存储接口的方法在传递键名时,将返回该键的值,如果该键在给定存储对象中不存在,则返回null。您需要使用
localStorage.getItem(“loggedIn”)
所以我必须传递
localStore.getItem('name')?
是的,它将允许您访问存储在localStorage中的值。尝试过它,但它返回
null
您必须解析它。使用
JSON.parse()
从字符串转换对象。但是您必须将其转换为字符串,同时将其存储在localStorage中,如
localStorage.setItem(“loggedIn”,JSON.stringify(loggedIn))
它返回
undefined
尝试如上设置
localStorage.setItem(“loggedIn”,JSON.stringify(loggedIn))并尝试获取。它返回
undefined
try set item如上
localStorage.setItem(“loggedIn”,JSON.stringify(loggedIn))并尝试获取。