Разрушение JS объекта с похожими детьми - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть следующие настройки, но я получаю сообщение об ошибке: Argument name clash. Как я могу деструктурировать это и при этом сохранить значение?

const Message = ({message: { user, text }, nickname}, {quest: { user, text }, nickname} ) =>{ 

Ответы [ 2 ]

0 голосов
/ 06 апреля 2020

Вы можете переименовать параметры, чтобы разрешить конфликты имен переменных, например:

const Message = ({
   message: {
      user: message_user,
      text: message_text
   },
   nickname: message_nickname
}, {
   quest: {
      user: quest_user,
      text: quest_text
   },
   nickname: quest_nickname
}) => {

}

Или вы можете попробовать это, если хотите использовать одинаковые имена переменных, но вы не можете работать со всеми одновременно время:

const Message = (param1, param2) => {
   let { message, nickname } = param1, quest;
   let { user, text } = message;
   // Do you stuff realed to message, user, text & nickname

   ({ quest, nickname } = param2);
   ({ user, text } = quest);
   // Do you stuff realed to quest, user, text & nickname
}
0 голосов
/ 06 апреля 2020

Вам придется переименовать одну из «конфликтующих» переменных, например:

const func = ({ a }, { a: b }) => {
  console.log(a, b);
}

const obj = { a: 'foo' };
func(obj, obj);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...