javascript - 空检查对象中的解构变量

标签 javascript ecmascript-6

我有下面所示的代码,用于从 this.props.auction 对象解构 end_time 属性

const {auction: {auction: {end_time}}} = this.props;

但是这里的问题是,如果拍卖是一个空对象,上面的常量将是未定义的。为了解决这个问题,我将代码更改为

if(Object.keys(this.props.auction).length) {
   var {auction: {auction: {end_time}}} = this.props;
} else {
   var {end_time} = "";
}

上述解决方案有效,但很丑陋,我相信肯定有更好的方法。

遵循this post的答案和

到目前为止我的尝试是:

const {auction: {auction: {end_time = null}}} = this.props || {};

我认为上面的方法会将 end_time 默认设置为 null 但我猜由于 auction 未定义,因此会引发错误。

请建议一种更好的方法来声明 end_time 常量,该常量负责空的拍卖

最佳答案

您不需要在每次可以使用解构时都使用它。

const auction = this.props.auction.auction;
const end_time = auction === undefined ? null : auction.end_time;

关于javascript - 空检查对象中的解构变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59259682/

相关文章:

javascript - 如果 await 永远不会返回会怎样?

javascript - 将 Angular-Material 中的多个选定元素堆叠在一起?

javascript - 选择器内部的变量 - jQuery - 这很棘手

javascript - 在NodeJS中将Word文档转换为PDF

javascript - 在哪里放置谷歌标签管理器标签片段在 Angular 中?

javascript - 在 .call() 中使用箭头函数? "This"根据本地 devtools 或 iojs 的变化而变化?是否应该避免在 .call 中使用箭头?

php - 如何从 MySQL 中获取值并将它们打印到 PHP 中

javascript - jQuery 我想将事件类添加到 anchor 标记的链接 ID

javascript - 如何将数据从子组件(子组件有自己的状态)传递给父组件?

javascript - 解构传播 Import ES6