Next.js-无法读取未定义的属性(读取“用户”)
2023-02-16
837
我在我的项目中使用 Next.js 和 Next-auth。
我正在构建一个侧边栏组件,我想在其中显示来自用户的项目列表。
因此,我使用 useSession 获取会话。
当我像这样记录会话时...
export default function Sidebar() {
const { data: session, status } = useSession();
console.log(session);
return (
...
)
}
...我得到了一个包含用户对象的对象。
但是当我尝试像这样记录用户时...
export default function Sidebar() {
const { data: session, status } = useSession();
console.log(session.user);
return (
...
)
}
我收到此错误:
TypeError: Cannot read properties of undefined (reading 'user')
知道这里的问题是什么吗?
非常感谢, Gabriel
2个回答
由于 useSession 是一个钩子,它将异步提供数据。因此,您需要在记录/使用会话之前检查会话是否未定义。
console.log(session?.user);
或
if(session) {
console.log(session.user);
}
Rameez
2023-02-16
问题可能出在对象的解构上。 建议您检查它是否不为空,就像 Rameez 所说的那样。 试试这个:
const { data, status } = useSession();
if(data.session.user){
console.log(data.session.user);
}
return (
...
);
gdserafini
2023-02-16