用户注销后无法读取未定义的属性“ _id”

拉尼

我正在尝试使用用户ID设置条件逻辑,以便如果通过身份验证的用户与创建此帖子的用户相同,则不要显示“喜欢”按钮。这有效,但是如果用户未登录,则会出现此错误cannot read property '_id' of undefined基本上,用户是未定义的,因为在注销用户时未对任何用户进行身份验证,那么如何处理此操作而又不会出现此错误且应用程序崩溃?如何解决此错误,但仍将逻辑与用户ID保持在一起?谢谢

Post.js

  ...
      .then((result) => {
        const {
          user: { _id },
        } = isAuthenticated();
        let updatedPost = { ...post };
        updatedPost.likes.push(id);
        setPost(updatedPost);
      })

      .catch((err) => {
        console.log(err);
      });
  };
  const showLikeIcon = () => {
    const {user: {_id}} = isAuthenticated()
    return (
      <span>
        {/* if user is not signed in, or user = author of post, don't display like icon */}
        {post.author && post.author.id === _id || !isAuthenticated() ? (
          ""
        ) : (
          <img
            src={Like}
            onClick={() => {
              like(id);
            }}
            alt="Like icon"
          />
        )}
      </span>
    );
  };


export default Post;

isAuthenticated()

export const isAuthenticated = () => {
    if (typeof window == 'undefined') {
        return false;
    }
    if (localStorage.getItem('jwt')) {
        return JSON.parse(localStorage.getItem('jwt'));
    } else {
        return false;
    }
};
崇乐

形成您的代码,我想当用户登录您的isAuthenticated()返回数据结构时,例如:

{
  ...
  user: {
     _id: id,
     ...
  }
}

这样就可以了{user: {_id}} = isAuthenticated()但是,当用户在不签署,它只是回归false这样isAuthenticated().userundefined,这会导致错误。

要解决此问题,您可以将代码更改为以下内容:

const showLikeIcon = () => {
  const {user} = isAuthenticated();
  return (
    <span>
      // if no user then it will not call user._id
      {(!user || (post.author && post.author.id === user._id)) ? (
        ""
      ) : (
        <img
          src={Like}
          onClick={() => {
            like(id);
          }}
          alt="Like icon"
        />
      )}
    </span>
  );
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法读取未定义的属性“ id”

来自分类Dev

Nodejs - 在错误中注册/登录用户 =“无法读取未定义的属性‘_id’”

来自分类Dev

灰烬路线:无法读取未定义的属性“ id”

来自分类Dev

guildBanAdd无法读取未定义的属性“ id”

来自分类Dev

UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“ id”

来自分类Dev

Gatsby TypeError-无法读取未定义的属性“ id”

来自分类Dev

MERN-TypeError:无法读取未定义的属性“ id”

来自分类Dev

删除时出错:无法读取未定义的属性“ id”

来自分类Dev

Serverless:“ errorMessage”:“无法读取未定义的属性” id“,

来自分类Dev

Angular Material TypeError:无法读取未定义的属性“ id”

来自分类Dev

UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“ id”

来自分类Dev

guildBanAdd无法读取未定义的属性“ id”

来自分类Dev

无法读取未定义的属性“ id”。表示

来自分类Dev

JWT-TypeError:无法读取未定义的属性“id”

来自分类Dev

Angular2-TypeError:无法读取(Typescript)中未定义的属性'Id'

来自分类Dev

AngularJS + Fullcalendar发送错误TypeError:无法读取未定义的属性'__id'

来自分类Dev

使用猫鼬findOneandUpdate时无法读取未定义的属性'_id'

来自分类Dev

解析工厂中声明的数组时,“无法读取未定义的属性'id'”

来自分类Dev

TypeError:无法读取未定义的属性'id'-Sails和MongoDB

来自分类Dev

未捕获的TypeError:无法读取registerNgModuleType上未定义的属性“ id”-角度PWA

来自分类Dev

NodeJs TypeError:无法读取未定义的属性“ Customer_id”

来自分类Dev

无法读取未定义的属性“代码”,解码Firebase ID令牌失败

来自分类Dev

core.js:6406错误TypeError:无法读取未定义的属性“ id”

来自分类Dev

功能组件到类组件错误:无法读取未定义的属性“ id”

来自分类Dev

TypeError:无法读取未定义的属性“ id” Discord.js

来自分类Dev

错误错误:未捕获(承诺):TypeError:无法读取未定义的属性“ id”

来自分类Dev

错误错误:未捕获(承诺):TypeError:无法读取未定义的属性“ id”

来自分类Dev

UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“ public_id”

来自分类Dev

core.js:30235未捕获的TypeError:无法读取未定义的属性'id'

Related 相关文章

  1. 1

    无法读取未定义的属性“ id”

  2. 2

    Nodejs - 在错误中注册/登录用户 =“无法读取未定义的属性‘_id’”

  3. 3

    灰烬路线:无法读取未定义的属性“ id”

  4. 4

    guildBanAdd无法读取未定义的属性“ id”

  5. 5

    UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“ id”

  6. 6

    Gatsby TypeError-无法读取未定义的属性“ id”

  7. 7

    MERN-TypeError:无法读取未定义的属性“ id”

  8. 8

    删除时出错:无法读取未定义的属性“ id”

  9. 9

    Serverless:“ errorMessage”:“无法读取未定义的属性” id“,

  10. 10

    Angular Material TypeError:无法读取未定义的属性“ id”

  11. 11

    UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“ id”

  12. 12

    guildBanAdd无法读取未定义的属性“ id”

  13. 13

    无法读取未定义的属性“ id”。表示

  14. 14

    JWT-TypeError:无法读取未定义的属性“id”

  15. 15

    Angular2-TypeError:无法读取(Typescript)中未定义的属性'Id'

  16. 16

    AngularJS + Fullcalendar发送错误TypeError:无法读取未定义的属性'__id'

  17. 17

    使用猫鼬findOneandUpdate时无法读取未定义的属性'_id'

  18. 18

    解析工厂中声明的数组时,“无法读取未定义的属性'id'”

  19. 19

    TypeError:无法读取未定义的属性'id'-Sails和MongoDB

  20. 20

    未捕获的TypeError:无法读取registerNgModuleType上未定义的属性“ id”-角度PWA

  21. 21

    NodeJs TypeError:无法读取未定义的属性“ Customer_id”

  22. 22

    无法读取未定义的属性“代码”,解码Firebase ID令牌失败

  23. 23

    core.js:6406错误TypeError:无法读取未定义的属性“ id”

  24. 24

    功能组件到类组件错误:无法读取未定义的属性“ id”

  25. 25

    TypeError:无法读取未定义的属性“ id” Discord.js

  26. 26

    错误错误:未捕获(承诺):TypeError:无法读取未定义的属性“ id”

  27. 27

    错误错误:未捕获(承诺):TypeError:无法读取未定义的属性“ id”

  28. 28

    UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“ public_id”

  29. 29

    core.js:30235未捕获的TypeError:无法读取未定义的属性'id'

热门标签

归档