Skip to content
This repository was archived by the owner on Jun 28, 2021. It is now read-only.
This repository was archived by the owner on Jun 28, 2021. It is now read-only.

Radio state not changing when component retrieved from state #459

Open
@chipit24

Description

@chipit24

Here is the code for the sample app:

class App extends Component {
  constructor() {
    super();
    
    this.state = {
      selectedOption: 'one'
    };
  }
  
  componentDidMount() {
    this.setState({
      radioContent: <RadioGroup
        className="payment-options"
        onChange={event => this.setState({selectedOption: event.currentTarget.value})}
        name="selectedOption"
        value={this.state.selectedOption}>
        <Radio ripple value="one">One</Radio>
        <Radio ripple value="two">Two</Radio>
        <Radio ripple value="three">Three</Radio>
        <Radio ripple value="four">Four</Radio>
      </RadioGroup>
    });
  }
  
  render() {
    return (
      <div className="App">
        {this.state.radioContent}
        <h1>{this.state.selectedOption}</h1>
      </div>
    );
  }
}

I have the test app up on GitHub as well: https://github.com/chipit24/react-mdl-radio-group-test

If you run the app, what you will notice is that the selectedOption in state is correctly updated, but the radio button state does not change; the first radio button ("one") will remain selected.

This appears to be caused by the fact that I'm storing the RadioGroup JSX inside of the state (however, the issue is the same if I store it as an instance variable).

I need to be able to dynamically generate and pass the RadioGroup component to other props in an app which I'm working on. How can I get around this issue?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions