Пространство имен объекта ES6 - PullRequest
0 голосов
/ 20 ноября 2018

Я столкнулся с синтаксисом, которого раньше не видел.Когда я имею дело с объектами и когда использую React, вы можете упростить пространство имен, выполнив такие действия, как

let {someProp} = prevProps

. Это позволяет мне избегать записи prevProps.someProp каждый раз, когда я хочу его использовать.

Что я не понимаю, так это синтаксис

let {someProp: oldData} = prevProps

console.log(someProp) покажет значение prevPros.someProp, но ГДЕ делает oldData???

console.log(olddata) выше этой строки покажет undefined, а console.log(oldData) внизу покажет предыдущие реквизиты.

Ответы [ 4 ]

0 голосов
/ 20 ноября 2018

Этот синтаксис - одна из блестящих новинок в ES6, называемая разрушение объекта .

Вот подробный пример того, как вы можете использовать деструктурирование различными способами

const person = {
  first: 'Jack',
  last: 'Daniels',
  address: {
    city: 'Dallas',
  }
};

// destructure as it is
const { first, last } = person;

// destructure with custom name
const { first: firstName, last: lastName } = person;

// destructure with default value
const { first, last, middle = 'The Boss' } = person;

// destructure with custom name and default value
const { first, last, middle: middleName = 'The Boss' } = person;

// destructure nested keys
const { first, last, address: { city } } = person;

// destructure nested keys with custom name
const { first, last, address: { city: myCity } } = person;

// destructure nested keys safely
const { first, last, address: { city } = {} } = person;

// destructure rest of the values
const { first, ...rest } = person; // => rest will have all keys but first
0 голосов
/ 20 ноября 2018

Да

let {someProp} = prevProps

похож на это:

let someProp = prevProps.someProp;

А это:

let {someProp: oldData} = prevProps

будет похоже на это:

let oldData = prevProps.someProp
0 голосов
/ 20 ноября 2018

Взгляните на эту ссылку

По сути, вы деструктурируете prevProps, и в этом случае oldData теперь будет иметь значение someProp

0 голосов
/ 20 ноября 2018

let {someProp: myAlias} = prevProps

Этот синтаксис позволяет использовать псевдоним, например, вы можете использовать myAlias в своем коде, вместо someProp, он называется Разрушение объекта

Как указано в комментариях @FelixKling , здесь есть официальная ссылка .

Пример из предоставленной ссылки:

let o = {p: 42, q: true};
let {p: foo, q: bar} = o;

console.log(foo); // 42 
console.log(bar); // true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...