В react'е пока "плаваю". Наверняка глупый вопрос:
Не могу найти способ "примешать" чужой компонент к своему. Т.е., задача в том, чтобы на одном DOM-узле находилось два компонента. Последняя конкретная ситуация:
Блок NavBar имеет элемент Menu, в который вложен набор элементов MenuItem. Использую Material-UI: в Menu вкладываю MuiMenuList, в MenuItem -- MuiMenuItem.
В итоге получаю такую структуру:
<div class="NavBar-Menu">
  <div class="MuiList...">
    <div class="NavBar-MenuItem">
      <div class="MuiListItem...">...</div>
    </div>
    <!-- ... -->
  </div>
</div>
Могу ли примешивать для NavBar-Menu и NavBar-MenuItem примешивать соотв. MuiMenuList и MuiMenuItem, вместо вкладывания чилдренов в методе content()?
Т.е., чтобы в итоге получалось:
<div class="NavBar-Menu MuiList...">
  <div class="NavBar-MenuItem MuiListItem...">...</div>
  <!-- ... -->
</div>
Как?
UPD: На всякий случай: приходило в голову пытаться как-то наследовать помимо Elem, ещё и от MUI-шного класса, но абсолютно не понимаю, как подсовывать нужные параметры. Сейчас это выглядит так:
export default class NavBarMenuItem extends Elem<INavBarMenuItemProps, INavBarMenuItemState> {
  public block = 'NavBar';
  public elem = 'MenuItem';
  public content() {
    return (
      <MuiMenuItem
        id={String(this.props.no)}
        selected={this.props.selected}
        onClick={this.props.onClick}
        classes={{
          root: `${this.block}-${this.elem}Mui`,
          selected: `${this.block}-${this.elem}Mui_selected`,
        }}
      >{this.props.children}</MuiMenuItem>
    );
  }
}
(MenuItemMui* -- Это, чтобы иметь возможность стилизовать создаваемый компонент.
Привет!
Плохая новость в том, что в bem-react-core@v2 была обнаружена серьезная архитектурная проблема. В результате приняли решение эту версию не развивать :(
Хорошая новость, что написали bem-react@3. Подробнее см. https://youtu.be/pVzlkCidOYg
@tadatuta Ого как! Насколько беспроблемно будет обновиться в рамках проекта, развёрнутого на последнем
bem-react-boilerplate? (Не вижу там традиционного документа про миграции.)UPD: В npm версии
v3не вижу, в клонированном пакете не вижу скрипта (смотрю вpackage.json) для сборкиbuild. Как подключать/использовать? UPD: Нашёл в командах travis:lerna run build-- так, да?И -- можно ли всё же где-то список отличий/миграций увидеть?
Наверное, лучше подождать появления в npm? Или можно где-то взять собранное?
Похоже, у меня ничего не собирается. :( См.
OH NOES!-- это так должно быть? Выводит такое (на win64):Во всяком случае, ничего похожего на результаты не вижу. В папках
packages/*вообще ничего нового не появляется.Кстати, есть странность: в
package.jsonпакета ветки v3 написано:Это что-то значит? Или обшибка?
Наверное, пока остаюсь на
bem-react-core@v2, раз так всё? Когда ожидается к.-то выкат?есть смысл посмотреть видео по ссылке. там теперь несколько отдельных пакетов, которые нужно ставить отдельно