TypeError:无法读取未定义错误的属性“ _id”

时间:2020-05-17 12:48:45

标签: javascript node.js reactjs web

我目前正在开发一个博客应用程序。我将react js用于前端,将node js用于后端。我有这个isAuthenticated方法。

export const isAuthenticated = () => {
if (typeof window == 'undefined') {
    return false;
}

if (localStorage.getItem('jwt')) {

    return JSON.parse(localStorage.getItem('jwt'));

}
 else {
    return false;
}};

我在这里用它

 <li className="nav-item">
                    <Link
                        to={`/user/${isAuthenticated().user._id}`}
                        style={isActive(history, `/user/${isAuthenticated().user._id}`)}
                        className="nav-link"
                    >
                        {`${isAuthenticated().user.name}'s profile`}
                    </Link>
                </li>

这给我TypeError错误:无法读取未定义的属性'_id' to = {{/user/${isAuthenticated().user._id}}这一部分

请帮助我库存,我无法从后端获取_id,但是每当我单击Google chrome开发工具中的应用程序时,我都可以jwt令牌

2 个答案:

答案 0 :(得分:1)

您尝试从 isAuthenticated 函数获取具有 user 属性的对象,但它仅返回字符串或布尔值。

答案 1 :(得分:0)

您的函数不仅可以返回localStorage项目,还可以返回false。

因此请像这样进行适当的检查

isAuthenticated() ? (
  <Link
    to={`/user/${isAuthenticated().user._id}`}
    style={isActive(history, `/user/${isAuthenticated().user._id}`)}
    className="nav-link"
  >
    {`${isAuthenticated().user.name}'s profile`}
  </Link>
) : (
  <Link
    to={`/login}`}
    className="nav-link"
  >
    Login
  </Link>
)