为什么react-redux connect()给出这样的默认值?

时间:2017-09-06 09:03:59

标签: ecmascript-6 default

我只是想知道为什么它会在初始化下面给出的函数的参数后给出一个“= {}”,这是一个空的默认值,任何人都可以回答这个问题吗?

return function connect(
mapStateToProps,
mapDispatchToProps,
mergeProps,
{
  pure = true,
  areStatesEqual = strictEqual,
  areOwnPropsEqual = shallowEqual,
  areStatePropsEqual = shallowEqual,
  areMergedPropsEqual = shallowEqual,
  ...extraOptions
} = {} ){ // code is here }

1 个答案:

答案 0 :(得分:0)

您可以为对象的参数和结构化属性设置默认值。 ={}是要解构的函数参数的默认值。如果您不定义此默认值,并且该方法的调用者将不提供对象,则调用将失败并显示错误:

const demo = ({ a = 1, b = 2 }) => ({ a, b });

console.log(demo({})); // works fine because it tries to destructure an object

console.log(demo()); // fails because the destructuring target is undefined

如果设置默认值={},它也可以处理未定义的值:

const demo = ({ a = 1, b = 2 } = {}) => ({ a, b });

console.log(demo()); // works because it has a default value