无法解构 null 的属性

问题描述 投票:0回答:2

我有一个组件可以从

user
属性中解构
auth

 const Profile = ({
     auth: {user}
 }) => {...}

问题是,当我开发时,每当我保存任何更改时,Nodemon 就会不断刷新我的页面。当组件尝试安装时,它会抛出一个错误,无法从

user
解构
auth
,因为
auth
此时为空(直到我导航站点并重新登录)。

有没有一种优雅的方式来处理这个问题?我看了这篇文章,但我做不到像

const { user } = auth || {}
这样的事情。嗯..我的意思是,我可以,但我想从道具中解构,而不是在函数体中执行
const { user } = auth || {}

javascript reactjs ecmascript-6 destructuring
2个回答
10
投票

auth
null
时,无法使用具有解构语法的默认参数来解析
user
而不抛出
TypeError

只需解构为

auth
并检查它是否正确:

const Profile = ({ auth }) => {
  const user = auth && auth.user;
  ...
}

0
投票

按照你的例子,我设法让它以这种方式工作

const { user } = auth ?? {}

这样你就不会得到 Cannot destruct property 'nn' of 'nn'因为它是空的。

© www.soinside.com 2019 - 2024. All rights reserved.