При создании пользовательского стиля с пользовательским интерфейсом Material + redux-form элемент Field из redux-form не применяет имена пользовательских классов.При простом использовании FieldText из Material UI делает.Я прокомментировал неработающую строку кода ниже.
Объект пользовательских стилей применяется к компоненту реагирования через опору с именем 'classes', которая определена в прототипе.
import React, {Component} from 'react';
import classNames from 'classnames';
import PropTypes from 'prop-types';
import { withStyles } from '@material-ui/core/styles';
import TextField from '@material-ui/core/TextField';
import { Field, reduxForm } from 'redux-form';
import { connect } from 'react-redux';
import {createOrder} from '../actions';
const styles = theme => ({
root: {
display: 'flex',
flexWrap: 'wrap',
justifyContent: 'center'
},
margin: {
margin: theme.spacing.unit,
},
textField: {
flexBasis: 400,
},
button: {
margin: theme.spacing.unit,
},
input: {
display: 'none',
},
});
class Order extends Component {
renderField(field) {
return (
<div>
<TextField
id="outlined-simple-start-adornment"
// className={classNames(classes.margin, classes.textField)}
variant="outlined"
label="Age"
{...field.input}
/>
</div>
)
}
render() {
const { classes } = this.props;
return (
<form >
<div className={classes.root}>
<Field
name="age"
label="age"
component={this.renderField}
/>
<TextField
id="outlined-simple-start-adornment"
className={classNames(classes.margin, classes.textField)}
variant="outlined"
label="Company Name"
/>
</div>
</form>
);
}
}
Order.propTypes = {
classes: PropTypes.object.isRequired,
};
export default reduxForm({
form: 'Form'
})(
connect(null, {createOrder})(withStyles(styles)(Order))
);