2017-08-02 46 views
0

我是新來對付js的。我工作的一個項目,結果發現這條線Redux const {var1,var2} = this.props;

const { var1, var2 } = this.props; 

道具將在本正在添加成分是

type PropsType = { 
    var1: Array<any>, 
    a: Array<any>, 
    b: boolean, 
    c: boolean, 
    var2: (string) => void, 
    d:() => void, 
    e:() => void 
}; 

我很困惑。這是什麼意思?

+1

見https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/ Operators/Destructuring_assignment#Object_destructuring – guest271314

+1

這是[object destructuring](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#Object_destructuring)。這與React沒有任何關係,它是一種新的語言功能。 – ivarni

回答

1
const { var1, var2 } = this.props; 
// the same as 
// const var1 = this.props.var1; 
// const var2 = this.props.var2; 

您是否試過閱讀docs

+0

你能解釋一下其他道具會發生什麼嗎?這意味着它們被分配給var1或var2中的任何一個,或者它們保持未分配狀態。 –

+0

他們只是在'道具'對象中。 – Andrew

0

這與React和Redux沒有直接關係。這是ES6 Object Destructuring分配。

這意味着你要分別給this.props.var1this.props.var2到consts var1var2

0

好冗餘的信息,但對我來說是一個修訂。 :) 無論如何,首先,這是解構對象分配。這意味着,這是一種從對象中獲取對象屬性值的簡便方法(比如this.props)。 所以,當你想,通過寫指令中提取名爲從「this.props」 VAR1「和「VAR2」屬性 -

const { var1, var2 } = this.props; 

你問名爲「VAR1」和「VAR2」屬性從'this.props'存儲在常量'var1'和'var2'中。所有其他屬性都被忽略。如果有任何問題的屬性名稱不存在,則只會給出「未分配」值。

在此之後,你可能會考慮通過更多的細節會在這裏(它的魔力!) - MDN - object_destructuring

相關問題