2017-09-06 84 views
0

我只是想知道爲什麼在初始化下面給出的函數的參數之後給出了一個「= {}」,這是一個空的默認值,任何人都可以回答這個問題嗎?爲什麼react-redux connect()給出這樣的默認值?

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

回答

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

+0

感謝大利德羅爾我,你解決了我的問題。 – Jackman

+0

@傑克曼 - 歡迎:) –

相關問題