Как деструктурировать вложенные реквизиты из объекта в pug mixin? - PullRequest
0 голосов
/ 18 апреля 2020

Итак, я хочу построить мопсин:

mixin productTile({img, title, desc, price, withCatLink = false, cat: {title = '', path = ''} = {}})
  .ProductTile
    p
      +icon({name: 'long-arrow-right'})

Я называю это так:

-
  const prodInfo = {
    img: '/img/icon.png',
    title: 'test title',
    desc: 'testdesc',
    price: '1200',
    withCatLink: true,
    cat: {
      title: 'test category',
      path: ''
    }
  };

+productTile(prodInfo)

Но я сталкиваюсь с проблемой:

SyntaxError: Argument name clash (366:103)

Так что, может быть, я ошибаюсь в разделении объектов, потому что когда я удаляю cat: {title = '', path = ''} = {} из объявления mixin, все в порядке

1 Ответ

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

Вы уничтожаете два поля, присваивая им имя title, поэтому вы получаете кла sh. Просто переименуйте один из них при разрушении. Например:

mixin productTile({img, title, desc, price, withCatLink = false, cat: {title: catalogTitle = '', path = ''} = {}})
  .ProductTile
    p
      +icon({name: 'long-arrow-right'})

...