相关疑难解决方法(0)

ES6对象解析默认参数

我试图弄清楚是否有一种方法可以使用默认参数的对象解构而不必担心对象被部分定义.考虑以下:

(function test({a, b} = {a: "foo", b: "bar"}) {
  console.log(a + " " + b);
})();
Run Code Online (Sandbox Code Playgroud)

{a: "qux"}例如,当我打电话给我qux undefined时,我会在控制台中看到我真正想要的东西qux bar.有没有办法实现这一点,而无需手动检查所有对象的属性?

javascript ecmascript-6

58
推荐指数
1
解决办法
2万
查看次数

ES6对象构造嵌套参数的默认值

我正在使用es6对象解构来为函数提供默认参数.

function mapStateToProps({ shops: { cakeShop: {}, pieShop: {} }) {
  return {
    CakeShopName: shops.cakeShop.Name,
    PieShopName: shops.pieShop.Name
  }
}
Run Code Online (Sandbox Code Playgroud)

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

mapStateToProps({})
Run Code Online (Sandbox Code Playgroud)

代码抛出Cannot read property 'Name' of undefined.嵌套对象shops未设置为其默认值,并且代码具有空引用.

如何确保将嵌套对象shops设置为正确的默认值,即使shops自身已定义?

javascript parameters ecmascript-6 reactjs react-redux

8
推荐指数
2
解决办法
5652
查看次数

JS函数声明:在参数声明中赋予空对象的花括号对象

这是代码,

export function createConnect({
    connectHOC = connectAdvanced,
    mapStateToPropsFactories = defaultMapStateToPropsFactories,
    mapDispatchToPropsFactories = defaultMapDispatchToPropsFactories,
    mergePropsFactories = defaultMergePropsFactories,
    selectorFactory = defaultSelectorFactory
} = {}) {...}
Run Code Online (Sandbox Code Playgroud)

什么{connectHOC = connectAdvanced ...} = {}意味着在函数参数声明中?

我知道

= {}
Run Code Online (Sandbox Code Playgroud)

可能意味着函数参数的默认值,但是前面括号内代码的用法是什么?

javascript

7
推荐指数
1
解决办法
698
查看次数

ES6解构对象赋值函数参数默认值

嗨,我在这里通过函数参数Object Destructuring Demo经历了对象解构的使用示例

function drawES6Chart({size = 'big', cords = { x: 0, y: 0 }, radius = 25} = **{}**) {
  console.log(size, cords, radius);
 // do some chart drawing
}

 // In Firefox, default values for destructuring assignments are not yet  
 implemented (as described below). 
 // The workaround is to write the parameters in the following way:
   // ({size: size = 'big', cords: cords = { x: 0, y: 0 }, radius: radius =  
      25} = **{}**)

 drawES6Chart({ …
Run Code Online (Sandbox Code Playgroud)

javascript object destructuring ecmascript-6

3
推荐指数
3
解决办法
1713
查看次数