Это не рекомендуется, так как CSS будет намного более эффективным, управляемым и гибким. Но если вы действительно хотели иметь глобальные рядные Реагировать стили, я мог бы сделать это следующим образом:
var App = React.createClass({
globalStyle: {
boxSizing: "border-box"
},
render() {
return (
<div>
<MyComponent globalStyle={this.globalStyle} />
</div>
);
}
});
var MyComponent = React.createClass({
style: {
border: "1px solid black"
},
render() {
return (
<div style={Object.assign({}, this.props.globalStyle, this.style)}></div>
);
}
});
В основном проходит глобальный стиль вниз к компонентам в качестве реквизита и они включают его там.
Обратите внимание, что первый параметр Object.assign()
«s новый пустой объект (так что мы не случайно мутировать наши другие) и что this.style
приходит последним (так, что она перекрывает любые глобальные стили.)
Если вы хотите глобальный стиль для изменения, вы должны сделать это с помощью компонента React state
и использовать getInitialState
и т. д. Я полагаю, что на самом деле это единственная причина, по которой вы должны были бы хотеть сделать это таким образом.
Почему вы не можете использовать одно правило CSS для этого? Наличие того же правила в каждом компоненте React похоже на накладные расходы – dotnetom
не злоупотреблять встроенными стилями – naomik
Я согласен, что это кажется глупым. Но если вы хотите это сделать, вы, вероятно, передадите какой-то «глобальный» стиль объекта вниз через реквизиты для каждого компонента и объедините его с стилями отдельных компонентов. – jered