Краткий ответ - здесь нет простого способа сделать то, что вы хотите.
У вас есть несколько вариантов:
Просто добавьте класс к каждому из ваших компонентов
const MyForm = ({classes}) => (
<Form>
<TextInput className = {classes.textInput} />
<TextInput className = {classes.textInput}/>
<TextInput className = {classes.textInput}/>
</Form>
)
const styles = {
textInput: {
color: "red"
}
}
Недостатком этого является то, что он повторяется.
Стиль ввода элемента dom напрямую, используя вложенный селектор
const MyForm = ({classes}) => (
<Form className={classes.root}>
<TextInput/>
<TextInput/>
<TextInput/>
</Form>
)
const styles = {
root: {
"& input" {
color: "red",
}
}
}
Здесь это будет стиль элемента input
напрямую, а не сам компонент React.Недостатком этого является то, что вы можете закончить стилизацию входных данных, которые вы не собирались делатьОднако я считаю, что это лучший способ сделать такие вещи, как стилизация таблиц и т. Д.
Создайте собственную библиотеку компонентов более высокого порядка, чтобы обернуть компоненты Material-UI
См. Мой вопрос по разработке программного обеспечения.
const MyTextInput = ({classes, ...rest}) => (
<TextInput className = {classes.root} ...rest/>
)
const styles = {
root: {
color: "red",
}
}
const MyForm = ({classes}) => (
<Form>
<MyTextInput/>
<MyTextInput/>
<MyTextInput/>
</Form>
);
Это похоже на ненужный шаблон и т. Д., Но я думаю, что в долгосрочной перспективе - это лучший подход для проекта, который может быть реализован дляв то время как - с точки зрения поддержания согласованной схемы проектирования во всем приложении.