react-md SelectField onChange not updating properly
up vote
0
down vote
favorite
I'm using the 'react-md'
library and I am trying to use the SelectField
component, but when I send a function for onChange
the select field no longer updates as it's supposed to.
handleSelection = (value, index, event, details) => {
// "details.id" is the id of the field which I am using to keep track of state
this.setState({[details.id]: value});
}
render() {
const STRING_SELECTORS = ['At most', 'At least'];
return(
<div>
<SelectField
id="calories-selector"
className="md-cell selector md-cell--5"
menuItems={STRING_SELECTORS}
defaultValue="At most"
onChange={this.handleSelection)
/>
)
}
When I don't call this.setState()
in the handleSelection
function, the menu changes as expected when clicking an item, however when I do call setState, it updates the selection on a delay. If the menu says "At most" and I click "At least" it will stay at "At most" then if I click "At most" it will then change the "At least".
I've had a similar issue with input fields, and to solve this I used onBlur
instead of onChange
, but the react-md
library's onBlur
doesn't get triggered in the way that I need.
javascript reactjs material-design
add a comment |
up vote
0
down vote
favorite
I'm using the 'react-md'
library and I am trying to use the SelectField
component, but when I send a function for onChange
the select field no longer updates as it's supposed to.
handleSelection = (value, index, event, details) => {
// "details.id" is the id of the field which I am using to keep track of state
this.setState({[details.id]: value});
}
render() {
const STRING_SELECTORS = ['At most', 'At least'];
return(
<div>
<SelectField
id="calories-selector"
className="md-cell selector md-cell--5"
menuItems={STRING_SELECTORS}
defaultValue="At most"
onChange={this.handleSelection)
/>
)
}
When I don't call this.setState()
in the handleSelection
function, the menu changes as expected when clicking an item, however when I do call setState, it updates the selection on a delay. If the menu says "At most" and I click "At least" it will stay at "At most" then if I click "At most" it will then change the "At least".
I've had a similar issue with input fields, and to solve this I used onBlur
instead of onChange
, but the react-md
library's onBlur
doesn't get triggered in the way that I need.
javascript reactjs material-design
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I'm using the 'react-md'
library and I am trying to use the SelectField
component, but when I send a function for onChange
the select field no longer updates as it's supposed to.
handleSelection = (value, index, event, details) => {
// "details.id" is the id of the field which I am using to keep track of state
this.setState({[details.id]: value});
}
render() {
const STRING_SELECTORS = ['At most', 'At least'];
return(
<div>
<SelectField
id="calories-selector"
className="md-cell selector md-cell--5"
menuItems={STRING_SELECTORS}
defaultValue="At most"
onChange={this.handleSelection)
/>
)
}
When I don't call this.setState()
in the handleSelection
function, the menu changes as expected when clicking an item, however when I do call setState, it updates the selection on a delay. If the menu says "At most" and I click "At least" it will stay at "At most" then if I click "At most" it will then change the "At least".
I've had a similar issue with input fields, and to solve this I used onBlur
instead of onChange
, but the react-md
library's onBlur
doesn't get triggered in the way that I need.
javascript reactjs material-design
I'm using the 'react-md'
library and I am trying to use the SelectField
component, but when I send a function for onChange
the select field no longer updates as it's supposed to.
handleSelection = (value, index, event, details) => {
// "details.id" is the id of the field which I am using to keep track of state
this.setState({[details.id]: value});
}
render() {
const STRING_SELECTORS = ['At most', 'At least'];
return(
<div>
<SelectField
id="calories-selector"
className="md-cell selector md-cell--5"
menuItems={STRING_SELECTORS}
defaultValue="At most"
onChange={this.handleSelection)
/>
)
}
When I don't call this.setState()
in the handleSelection
function, the menu changes as expected when clicking an item, however when I do call setState, it updates the selection on a delay. If the menu says "At most" and I click "At least" it will stay at "At most" then if I click "At most" it will then change the "At least".
I've had a similar issue with input fields, and to solve this I used onBlur
instead of onChange
, but the react-md
library's onBlur
doesn't get triggered in the way that I need.
javascript reactjs material-design
javascript reactjs material-design
asked 3 hours ago
Liz C.
11
11
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
You can use the value prop of SelectField
component. Create a state and bind it to the SelectField
value prop and update the state at onChange
event to the selected value.
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
You can use the value prop of SelectField
component. Create a state and bind it to the SelectField
value prop and update the state at onChange
event to the selected value.
add a comment |
up vote
0
down vote
You can use the value prop of SelectField
component. Create a state and bind it to the SelectField
value prop and update the state at onChange
event to the selected value.
add a comment |
up vote
0
down vote
up vote
0
down vote
You can use the value prop of SelectField
component. Create a state and bind it to the SelectField
value prop and update the state at onChange
event to the selected value.
You can use the value prop of SelectField
component. Create a state and bind it to the SelectField
value prop and update the state at onChange
event to the selected value.
answered 3 hours ago
Manish
54
54
add a comment |
add a comment |
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%2f53370629%2freact-md-selectfield-onchange-not-updating-properly%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