EN
alexbaumgertner
alexbaumgertner
30 августа 2017

Подскажите, как в React-проекте у DOM-элементов сделать css-классы вида <div class=“Button__text_type_submit”>?
Пробовал в .bemrc.js — https://github.com/alexbaumgertner/bem-react-example-components/blob/master/.bemrc.js#L7-L24
— не работает.

button

Не могу найти, как поменять конфигурацию по умолчанию, судя по коду, это захардкожено:
https://github.com/bem/bem-react-core/blob/master/src/index.js#L10
https://github.com/bem/bem-react-core/blob/master/.bemrc.js#L16

Собирается в
brc

Сделал демо https://github.com/alexbaumgertner/bem-react-example-components/pull/1

alexbaumgertner
#alexbaumgertner
30 августа 2017

@veged @awinogradov

belozer
#belozer
30 августа 2017

@alexbaumgertner а определение .bemrc на уровне проекта не помогает? Вроде должно быть достаточно указать его локально.

alexbaumgertner
#alexbaumgertner
30 августа 2017
awinogradov
#awinogradov
31 августа 2017

@alexbaumgertner ты прав, сейчас берется бэм-конфиг с уровня bem-react-core и твой никак не влияет на нейминг. @tadatuta как нам лучше с этим побороться?

awinogradov
#awinogradov
31 августа 2017

@alexbaumgertner пока могу предложить у себя на проекте определеить кастомный index.js для bem-react-core:

// my-project/bem-react-core/index.js
import decls from 'bem-react-core/dist/lib/decls';
import BaseBemReact from 'bem-react-core/dist/lib/BaseComponent';
import simpleComponent from 'bem-react-core/dist/lib/simpleComponent';

const opts = {
    __dangerouslySetNaming : 'origin'
};

export const { decl, declMod } = decls(BaseComponent, {}, opts);

export const {decl, declMod} = decls;
export default SimpleComponent({}, opts);
// my-project/blocks/component/component.js
import { decl } from '../../bem-react-core'

export default decl();

Или написать алиас для webpack и тогда будет импорт как и без доопрделения.

zxqfox
#zxqfox
31 августа 2017

как нам лучше с этим побороться?

завести issue в bem-config

p.s. Я только не очень понял где проблема, это точно на стороне конфига?

tadatuta
#tadatuta
31 августа 2017

как нам лучше с этим побороться?

нужно переставать импортить .bemrc и начать, наконец, использовать bem-config :)

alexbaumgertner
#alexbaumgertner
31 августа 2017

Еще вопрос: если я использую нейминг origin, то я не могу переопределять bem-react-components, так как она использует react?
Стили CSS при создании будут Button-Text и на этапе сборки это никак не сконфигурировать?

alexbaumgertner
#alexbaumgertner
31 августа 2017

@awinogradov спасибо, это лучше чем форк и как временное решение ок.

zxqfox
#zxqfox
31 августа 2017

Пока bem-react-components не начнет использовать что-то вроде rebem или pobem
И/ИЛИ пока в целом не будет работать побиблиотечная кастомизация нейминга — действительно никак нормальным способом нельзя будет сконфигурировать

P.s. решение в лоб — postcss плагин для файлов из bem-react-components

awinogradov
#awinogradov
1 сентября 2017

@tadatuta да я бы вообще без проблем, только вот fs чет на клиенте не работает) Даже не знаю как починить)

tadatuta
#tadatuta
1 сентября 2017
awinogradov
#awinogradov
2 сентября 2017

Я там понаписал пример того как можно решить без долгих подготовок