Create custom style Material UI with redux-form
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
When creating custom styling with Material UI + redux-form, the Field element from redux-form does not apply the custom class names. When simply using FieldText from Material UI does. I have commented out the non-functioning line of code below.
The custom styles object is being applied the the react component via a prop named 'classes' that is defined on the prototype.
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))
);
reactjs material-ui mobx-react-form
add a comment |
When creating custom styling with Material UI + redux-form, the Field element from redux-form does not apply the custom class names. When simply using FieldText from Material UI does. I have commented out the non-functioning line of code below.
The custom styles object is being applied the the react component via a prop named 'classes' that is defined on the prototype.
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))
);
reactjs material-ui mobx-react-form
add a comment |
When creating custom styling with Material UI + redux-form, the Field element from redux-form does not apply the custom class names. When simply using FieldText from Material UI does. I have commented out the non-functioning line of code below.
The custom styles object is being applied the the react component via a prop named 'classes' that is defined on the prototype.
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))
);
reactjs material-ui mobx-react-form
When creating custom styling with Material UI + redux-form, the Field element from redux-form does not apply the custom class names. When simply using FieldText from Material UI does. I have commented out the non-functioning line of code below.
The custom styles object is being applied the the react component via a prop named 'classes' that is defined on the prototype.
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))
);
reactjs material-ui mobx-react-form
reactjs material-ui mobx-react-form
asked Nov 22 '18 at 8:32
angelicaangelica
153
153
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
Because classes
is undefined, you can access classes
from props.
like this.
className={classNames(this.props.classes.margin, this.props.classes.textField)}
TextField
should be like this.
<TextField
id="outlined-simple-start-adornment"
className={classNames(this.props.classes.margin, this.props.classes.textField)}
variant="outlined"
label="Age"
{...field.input}
/>
I was playing around with that as well -- but received a "TypeError: Cannot read property 'props' of undefined" when I define classes in the local scope. Could this need componentDidMount? Or is it something with redux-form?
– angelica
Nov 23 '18 at 2:27
add a comment |
I think you have defined const { classes } = this.props;
in render()
but it is not accesible inside renderField(field){...}
due to its scope.
You can not destructure props for whole component.
Destructuring can only assign local variables so you'd need to destructure props in each function. Otherwise there's nothing wrong with having to write this.props.value.
So here you have two alternatives
1] pass props to renderField()
or again destructure const { classes } = this.props
inside renderField()
2] Directly use this.props.classes
instead of just classes
in renderField()
I was playing around with that as well -- but received a "TypeError: Cannot read property 'props' of undefined" when I define classes in the local scope. Could this need componentDidMount? Or is it something with redux-form?
– angelica
Nov 23 '18 at 2:27
Can you post your code so that I can see where you are getting an error
– Pushpanjali
Dec 3 '18 at 12:53
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53426732%2fcreate-custom-style-material-ui-with-redux-form%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Because classes
is undefined, you can access classes
from props.
like this.
className={classNames(this.props.classes.margin, this.props.classes.textField)}
TextField
should be like this.
<TextField
id="outlined-simple-start-adornment"
className={classNames(this.props.classes.margin, this.props.classes.textField)}
variant="outlined"
label="Age"
{...field.input}
/>
I was playing around with that as well -- but received a "TypeError: Cannot read property 'props' of undefined" when I define classes in the local scope. Could this need componentDidMount? Or is it something with redux-form?
– angelica
Nov 23 '18 at 2:27
add a comment |
Because classes
is undefined, you can access classes
from props.
like this.
className={classNames(this.props.classes.margin, this.props.classes.textField)}
TextField
should be like this.
<TextField
id="outlined-simple-start-adornment"
className={classNames(this.props.classes.margin, this.props.classes.textField)}
variant="outlined"
label="Age"
{...field.input}
/>
I was playing around with that as well -- but received a "TypeError: Cannot read property 'props' of undefined" when I define classes in the local scope. Could this need componentDidMount? Or is it something with redux-form?
– angelica
Nov 23 '18 at 2:27
add a comment |
Because classes
is undefined, you can access classes
from props.
like this.
className={classNames(this.props.classes.margin, this.props.classes.textField)}
TextField
should be like this.
<TextField
id="outlined-simple-start-adornment"
className={classNames(this.props.classes.margin, this.props.classes.textField)}
variant="outlined"
label="Age"
{...field.input}
/>
Because classes
is undefined, you can access classes
from props.
like this.
className={classNames(this.props.classes.margin, this.props.classes.textField)}
TextField
should be like this.
<TextField
id="outlined-simple-start-adornment"
className={classNames(this.props.classes.margin, this.props.classes.textField)}
variant="outlined"
label="Age"
{...field.input}
/>
edited Nov 22 '18 at 9:15
answered Nov 22 '18 at 9:03
Amruth LSAmruth LS
3,0231727
3,0231727
I was playing around with that as well -- but received a "TypeError: Cannot read property 'props' of undefined" when I define classes in the local scope. Could this need componentDidMount? Or is it something with redux-form?
– angelica
Nov 23 '18 at 2:27
add a comment |
I was playing around with that as well -- but received a "TypeError: Cannot read property 'props' of undefined" when I define classes in the local scope. Could this need componentDidMount? Or is it something with redux-form?
– angelica
Nov 23 '18 at 2:27
I was playing around with that as well -- but received a "TypeError: Cannot read property 'props' of undefined" when I define classes in the local scope. Could this need componentDidMount? Or is it something with redux-form?
– angelica
Nov 23 '18 at 2:27
I was playing around with that as well -- but received a "TypeError: Cannot read property 'props' of undefined" when I define classes in the local scope. Could this need componentDidMount? Or is it something with redux-form?
– angelica
Nov 23 '18 at 2:27
add a comment |
I think you have defined const { classes } = this.props;
in render()
but it is not accesible inside renderField(field){...}
due to its scope.
You can not destructure props for whole component.
Destructuring can only assign local variables so you'd need to destructure props in each function. Otherwise there's nothing wrong with having to write this.props.value.
So here you have two alternatives
1] pass props to renderField()
or again destructure const { classes } = this.props
inside renderField()
2] Directly use this.props.classes
instead of just classes
in renderField()
I was playing around with that as well -- but received a "TypeError: Cannot read property 'props' of undefined" when I define classes in the local scope. Could this need componentDidMount? Or is it something with redux-form?
– angelica
Nov 23 '18 at 2:27
Can you post your code so that I can see where you are getting an error
– Pushpanjali
Dec 3 '18 at 12:53
add a comment |
I think you have defined const { classes } = this.props;
in render()
but it is not accesible inside renderField(field){...}
due to its scope.
You can not destructure props for whole component.
Destructuring can only assign local variables so you'd need to destructure props in each function. Otherwise there's nothing wrong with having to write this.props.value.
So here you have two alternatives
1] pass props to renderField()
or again destructure const { classes } = this.props
inside renderField()
2] Directly use this.props.classes
instead of just classes
in renderField()
I was playing around with that as well -- but received a "TypeError: Cannot read property 'props' of undefined" when I define classes in the local scope. Could this need componentDidMount? Or is it something with redux-form?
– angelica
Nov 23 '18 at 2:27
Can you post your code so that I can see where you are getting an error
– Pushpanjali
Dec 3 '18 at 12:53
add a comment |
I think you have defined const { classes } = this.props;
in render()
but it is not accesible inside renderField(field){...}
due to its scope.
You can not destructure props for whole component.
Destructuring can only assign local variables so you'd need to destructure props in each function. Otherwise there's nothing wrong with having to write this.props.value.
So here you have two alternatives
1] pass props to renderField()
or again destructure const { classes } = this.props
inside renderField()
2] Directly use this.props.classes
instead of just classes
in renderField()
I think you have defined const { classes } = this.props;
in render()
but it is not accesible inside renderField(field){...}
due to its scope.
You can not destructure props for whole component.
Destructuring can only assign local variables so you'd need to destructure props in each function. Otherwise there's nothing wrong with having to write this.props.value.
So here you have two alternatives
1] pass props to renderField()
or again destructure const { classes } = this.props
inside renderField()
2] Directly use this.props.classes
instead of just classes
in renderField()
answered Nov 22 '18 at 9:44
PushpanjaliPushpanjali
113
113
I was playing around with that as well -- but received a "TypeError: Cannot read property 'props' of undefined" when I define classes in the local scope. Could this need componentDidMount? Or is it something with redux-form?
– angelica
Nov 23 '18 at 2:27
Can you post your code so that I can see where you are getting an error
– Pushpanjali
Dec 3 '18 at 12:53
add a comment |
I was playing around with that as well -- but received a "TypeError: Cannot read property 'props' of undefined" when I define classes in the local scope. Could this need componentDidMount? Or is it something with redux-form?
– angelica
Nov 23 '18 at 2:27
Can you post your code so that I can see where you are getting an error
– Pushpanjali
Dec 3 '18 at 12:53
I was playing around with that as well -- but received a "TypeError: Cannot read property 'props' of undefined" when I define classes in the local scope. Could this need componentDidMount? Or is it something with redux-form?
– angelica
Nov 23 '18 at 2:27
I was playing around with that as well -- but received a "TypeError: Cannot read property 'props' of undefined" when I define classes in the local scope. Could this need componentDidMount? Or is it something with redux-form?
– angelica
Nov 23 '18 at 2:27
Can you post your code so that I can see where you are getting an error
– Pushpanjali
Dec 3 '18 at 12:53
Can you post your code so that I can see where you are getting an error
– Pushpanjali
Dec 3 '18 at 12:53
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53426732%2fcreate-custom-style-material-ui-with-redux-form%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown