2017-09-06 1 views
0

Je me demande juste pourquoi donne-t-il un "= {}" qui est une valeur par défaut vide après l'initialisation des paramètres de la fonction donnée ci-dessous, Quelqu'un peut-il répondre à cela?Pourquoi react-redux connect() donne une valeur par défaut comme ça?

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

Répondre

0

Vous pouvez définir des valeurs par défaut pour les paramètres de l'objet et pour les propriétés déstructurées. Le ={} est le paramètre par défaut pour le paramètre de la fonction que vous voulez déstructurer. Si vous ne définissez cette valeur par défaut, et l'appelant de la méthode ne fournira pas un objet, l'appel échouera avec une erreur:

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

Si vous définissez la valeur par défaut ={} il peut manipuler des valeurs non définies ainsi:

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

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

+0

Merci Ori Dror Je, vous avez résolu mon problème. – Jackman

+0

@Jackman - bienvenue :) –