这行代码是什么意思? const {“ intl”:{formatMessage},} = this.context

时间:2018-12-10 14:06:41

标签: javascript reactjs ecmascript-6 intl react-intl

我是React的新手,我正在阅读一些代码,发现这行代码:

const {intl: { formatMessage }, } = this.context

是一个const声明,但我不明白 我知道是JS ES6,但我不明白它的用途是什么? 如何检查此const的值?

谢谢

3 个答案:

答案 0 :(得分:5)

人们已经回答了。这是对象分解

简单的示例:const contact = {name: 'John', email: 'john@doe.com'}

使用ES6,您可以进行const {email} = contact; //email = contact.email 如果您想使用其他名称来命名变量,则为:

const {email: mailbox} = contact //equivalent to mailbox = contact.email;

回到原始问题:{intl: { formatMessage }, } = this.context

=> {formatMessage} = this.context.intl => formatMessage = this.context.intl.formatMessage

答案 1 :(得分:1)

您拥有的代码实际上是以下代码的表示形式,

const formatMessage = this.context.intl.formatMessage

您可以阅读有关对象分解的知识,以了解更多信息。

答案 2 :(得分:0)

这只是意味着this.context包含与此类似的结构

this.context = {
  intl:{
      formatMessage: // This has a value let's say "Hello"
  },
//Other key-value pairs could be contained in the context object }

这行代码是一种简短的语法,告诉您,只能从称为的大对象中检索只能在“ intl”中找到的 formatMessage 属性。 >“ this.context”