javascript – 嵌套参数的ES6对象解构默认值

前端之家收集整理的这篇文章主要介绍了javascript – 嵌套参数的ES6对象解构默认值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用es6对象解构来为函数提供默认参数.
function mapStateToProps({ shops: { cakeShop: {},pieShop: {} }) {
  return {
    CakeShopName: shops.cakeShop.Name,PieShopName: shops.pieShop.Name
  }
}

上面的问题是,如果我打电话

mapStateToProps({})

代码抛出无法读取未定义的属性名称”.商店中的嵌套对象未设置为其默认值,并且代码具有空引用.

如何确定商店内的嵌套对象被设置为正确的默认值,即使商店本身已定义?

解决方法

听起来像是在混淆默认值的混乱.您的语法会破坏参数对象,但实际上并不会引入任何参数标识符.您的功能范围内没有商店变量.

我假设你真的想介绍cakeShop和pieShop变量,并为它们提供默认值.要做到这一点,你要写

function mapStateToProps({ shops: { cakeShop = {},pieShop = {} }) {
// short for             { shops: { cakeShop: cakeShop = {},pieShop: pieShop = {} }) {
// parameter names (that will be bound):      ^^^^^^^^                ^^^^^^^
  return {
    CakeShopName: cakeShop.Name,PieShopName: pieShop.Name
  }
}

你也可以使用

function mapStateToProps({ shops: { cakeShop: {name: CakeShopName} = {},pieShop: {name: PieShopName} = {} }) {
  return {CakeShopName,PieShopName};
}
原文链接:https://www.f2er.com/js/155282.html

猜你在找的JavaScript相关文章